将多个元素推送到数组
我试图推动多个元素作为一个数组,但得到错误
> a = [] [] > a.push.apply(null, [1,2]) TypeError: Array.prototype.push called on null or undefined
我试图做类似的东西,我会做的ruby,我想apply
是像*
东西。
>> a = [] => [] >> a.push(*[1,2]) => [1, 2]
当使用apply
或call
来使用对象的大部分函数时, context
参数必须是您正在处理的对象。
在这种情况下,您需要a.push.apply(a, [1,2])
(或更正确的Array.prototype.push.apply(a, [1,2])
)
您可以按照以下方式将多个元素推入到一个数组中
var a = []; a.push(1, 2, 3); console.log(a);
现在在ECMAScript2015(又名ES6)中,可以使用spread运算符一次追加多个项目:
var arr = [1]; var newItems = [2, 3]; arr.push(...newItems); console.log(arr);
你可以使用Array.concat
:
var result = a.concat(b);
在ES6中,您可以使用扩展运算符
const arr = [] arr.push( ...[ item1, item2, item3, ] )
如果你想在ECMAScript 2015(也就是ES6,ES2015)中替代Array.concat
,像这样,它不会修改数组,但会返回一个新的数组,您可以使用spread运算符,如下所示:
var arr = [1]; var newItems = [2, 3]; var newerItems = [4, 5]; var newArr = [...arr, ...newItems, ...newerItems]; console.log(newArr);
var a=[]; a.push({ name_a:"abc", b:[] }); abpush({ name_b:"xyz" });
var arr = [1]; var newItems = [2, 3]; arr.push(newItems[1]); console.log(arr);
使用jQuery合并function。 这非常方便
$.merge(oldArray, NewElements);
oldArray将添加您提供的元素。
有关更多信息,请参阅