複数の要素を 1 つの配列としてプッシュしようとしていますが、エラーが発生します。
> 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]
複数の要素を 1 つの配列としてプッシュしようとしていますが、エラーが発生します。
> 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);
一度に複数のオブジェクトをプッシュすることは、多くの場合、 をどのように宣言しているかによって異なりますarray
。
これが私がした方法です
//declaration
productList= [] as any;
今push
記録する
this.productList.push(obj.lenght, obj2.lenght, items);
私も同じ疑問を持っていましたが、私の場合、より簡単な解決策がうまくいきました:
let array = []
array.push(1, 2, 4, "string", new Object())
console.log(array)
// logs [ 1, 2, 4, 'string', {} ]
ES6スプレッド演算子を使用してください:
let a = [1,2,3];
let b = [4,5,6];
a = [...a,...b];
// [1,2,3,4,5,6]
var a=[];
a.push({
name_a:"abc",
b:[]
});
a.b.push({
name_b:"xyz"
});