将多个元素推送到数组

我试图推动多个元素作为一个数组,但得到错误

> 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] 

当使用applycall来使用对象的大部分函数时, 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将添加您提供的元素。
有关更多信息,请参阅

http://api.jquery.com/jQuery.merge/