我试图推多个元素作为一个数组,但得到一个错误:
> a = []
[]
> a.push.apply(null, [1,2])
TypeError: Array.prototype.push called on null or undefined
我试图做类似的事情,我在ruby中做,我认为应用是类似*的东西。
>> a = []
=> []
>> a.push(*[1,2])
=> [1, 2]
我试图推多个元素作为一个数组,但得到一个错误:
> a = []
[]
> a.push.apply(null, [1,2])
TypeError: Array.prototype.push called on null or undefined
我试图做类似的事情,我在ruby中做,我认为应用是类似*的东西。
>> a = []
=> []
>> a.push(*[1,2])
=> [1, 2]
当前回答
如果你想要Array的替代品。concat在ECMAScript 2015(也就是ES6, ES2015),像它一样,不修改数组,但返回一个新的数组,你可以像这样使用展开操作符:
瓦尔·阿r = [1] 姓简的行动; 姓沃的衣服 世界上的人arr, ...newItems, ... newerItems]; console.log (newArr);
注意,这与push方法不同,因为push方法会改变/修改数组。
如果你想看看某些ES2015特性在你的浏览器中是否有效,请检查Kangax的兼容性表。
如果你不想等待浏览器的支持,并且想在生产环境中使用ES2015,你也可以使用Babel或类似的转译器。
其他回答
当使用apply或call使用对象的大多数函数时,context参数必须是您正在处理的对象。
在这种情况下,你需要。推一把。apply(a,[1,2])(或者更准确地说是Array.prototype.push。应用(a [1, 2]))
现在在ECMAScript2015(也就是ES6)中,你可以使用展开操作符一次添加多个项:
var arr = [1]; var newItems = [2, 3]; arr.push(...新项目); 控制台.log(到达);
请参阅Kangax的ES6兼容性表,了解哪些浏览器是兼容的
如果你想添加多个项目,你可以使用Array.push()和展开操作符:
a = [1,2]
b = [3,4,5,6]
a.push(...b)
结果将是
a === [1,2,3,4,5,6]
如果你想要Array的替代品。concat在ECMAScript 2015(也就是ES6, ES2015),像它一样,不修改数组,但返回一个新的数组,你可以像这样使用展开操作符:
瓦尔·阿r = [1] 姓简的行动; 姓沃的衣服 世界上的人arr, ...newItems, ... newerItems]; console.log (newArr);
注意,这与push方法不同,因为push方法会改变/修改数组。
如果你想看看某些ES2015特性在你的浏览器中是否有效,请检查Kangax的兼容性表。
如果你不想等待浏览器的支持,并且想在生产环境中使用ES2015,你也可以使用Babel或类似的转译器。
可以按以下方法将多个元素推入数组
Var a = []; A.push (1,2,3); console.log(一个);