JavaScript で N 個のオブジェクト配列を連結する最も効率的な方法は何ですか?
配列は変更可能であり、結果は入力配列の 1 つに格納できます。
ベストアンサー1
2つ以上の配列を連結する場合は、concat()
利便性とパフォーマンスを重視するなら、これが最適な方法です。
var a = [1, 2], b = ["x", "y"], c = [true, false];
var d = a.concat(b, c);
console.log(d); // [1, 2, "x", "y", true, false];
push
2つの配列を連結する場合、配列に追加する要素からなる複数の引数を受け入れるという事実は、新しい配列を生成せずに、1つの配列から別の配列の末尾に要素を追加するために使用できます。また、のslice()
代わりにも使用できますが、concat()
これを実行してもパフォーマンス上の利点はないようです。
var a = [1, 2], b = ["x", "y"];
a.push.apply(a, b);
console.log(a); // [1, 2, "x", "y"];
ECMAScript 2015以降では、これをさらに次のように短縮できます。
a.push(...b)
しかし、大規模な配列(100,000要素以上)の場合、配列の要素を渡す手法push
(apply()
またはECMAScript 2015スプレッド演算子を使用)は失敗する可能性があります。このような配列の場合は、ループを使用する方がよい方法です。https://stackoverflow.com/a/17368101/96100詳細については。