我试图推多个元素作为一个数组,但得到一个错误:
> 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]
当前回答
当使用apply或call使用对象的大多数函数时,context参数必须是您正在处理的对象。
在这种情况下,你需要。推一把。apply(a,[1,2])(或者更准确地说是Array.prototype.push。应用(a [1, 2]))
其他回答
当使用apply或call使用对象的大多数函数时,context参数必须是您正在处理的对象。
在这种情况下,你需要。推一把。apply(a,[1,2])(或者更准确地说是Array.prototype.push。应用(a [1, 2]))
更简单的方法是
a = []
a.push(1,2,3)
另一种方法是
a = [...a, 4,5,6]
如果你想创建另一个数组
const b = a.concat(7,8,9)
假设你有一个包含前10个数字的数组,但缺少一个数字,比如6。 您可以使用以下代码将其插入到索引5处的数组中
函数insert(数组,索引,obj) { 返回[…array.slice(0,index), obj,…array.slice(index)] } 让arr = [1,2,3,4,5,7,8,9,0] Arr = insert(Arr, 5,6) console.log (arr)
现在在ECMAScript2015(也就是ES6)中,你可以使用展开操作符一次添加多个项:
var arr = [1]; var newItems = [2, 3]; arr.push(...新项目); 控制台.log(到达);
请参阅Kangax的ES6兼容性表,了解哪些浏览器是兼容的
一次推入多个对象通常取决于如何声明数组。
我就是这么做的
//declaration
productList= [] as any;
现在推送记录
this.productList.push(obj.lenght, obj2.lenght, items);