如果我将对象定义为:
var myObj={};
然后,我用以下内容更新此对象:
myObj['fruit']=['apple', 'orange'];
稍后,我想将“ [banana,melon] ”附加到myObj['fruit']
,即更新myObj
到
['apple','orange','banana','melon']
在我的情况下更新myObj的'fruit'属性值的最优雅方法是什么?这是通过附加新数组来更新数组。
-------- EDIT -------
我需要一种方法将数组附加为一个变量,而不是提取附加数组的每个元素并推送。,例如oldArray附加newArray = final数组
答案 0 :(得分:1)
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 );
答案 1 :(得分:1)
如果您不想推,那么concat:)
答案 2 :(得分:-1)
我建议迭代你要推送的数组项:
var newObj = ["banana", "melon"];
for (var i in newObj)
{
myObj['fruit'].push(newObj[i]);
}
:)