как обновить значение массива свойств объекта? - PullRequest
0 голосов
/ 03 июня 2011

Если у меня есть объект, определенный как:

var myObj={};

Затем я обновлю этот объект:

myObj['fruit']=['apple', 'orange'];

Позже я хотел бы добавить " [банан", дыня]"до myObj['fruit'], это обновление myObj до

['apple','orange','banana','melon']

Какой самый элегантный способ обновить значение атрибута 'fruit' в myObj в моем случае?Это обновление массива путем добавления нового массива.

-------- РЕДАКТИРОВАТЬ -------

Мне нужен способдобавить массив как одну переменную, а не извлекать каждый элемент добавленного массива и нажать. например, oldArray добавить с newArray = final array

Ответы [ 3 ]

1 голос
/ 03 июня 2011

Если вы не хотите нажимать, то concat :)

1 голос
/ 03 июня 2011

JavaScript имеет встроенный Array.push()

myObj["fruit"].push( 'banana', 'melon' );

Есть несколько способов добавить массив. Для начала используйте apply() для вызова push с массивом в качестве отдельных аргументов:

var toAppend = ['banana', 'melon'];
// note [].push is just getting the "push" function from an empty array
// the first argument to "apply" is the array you are pushing too, the
// second is the array containing items to append
[].push.apply( myObj["fruit"], toAppend );

Кроме того, вы можете concat() массивы, однако concat не изменяет исходный массив, поэтому, если у вас есть другие ссылки, они могут быть потеряны:

myObj["fruit"] = myObj["fruit"].concat( toAppend );
0 голосов
/ 03 июня 2011

Я бы предложил перебрать элементы массива, которые вы хотите выдвинуть, выполнив следующее:

var newObj = ["banana", "melon"];

for (var i in newObj)
{
   myObj['fruit'].push(newObj[i]);
}

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...