我试图将多个元素作为一个数组推送,但出现错误:
> 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]
我试图将多个元素作为一个数组推送,但出现错误:
> 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]
您可以通过以下方式将多个元素推送到数组中
var a = [];
a.push(1, 2, 3);
console.log(a);
现在在 ECMAScript2015(又名 ES6)中,您可以使用扩展运算符一次附加多个项目:
var arr = [1];
var newItems = [2, 3];
arr.push(...newItems);
console.log(arr);
查看Kangax的ES6兼容性表,查看兼容哪些浏览器
使用apply
或使用对象的大多数功能时call
,context
参数必须是您正在处理的对象。
在这种情况下,您需要a.push.apply(a, [1,2])
(或更准确地说Array.prototype.push.apply(a, [1,2])
)
您可以使用Array.concat
:
var result = a.concat(b);
如果要添加多个项目,则必须使用扩展运算符
a = [1,2]
b = [3,4,5,6]
a.push(...b)
输出将是
a = [1,2,3,4,5,6]