1. ホーム
  2. ジャバスクリプト

[解決済み】N個の配列を連結する最も効率的な方法は何ですか?

2022-03-28 13:23:53

質問

JavaScript でオブジェクトの N 個の配列を連結する最も効率的な方法は何ですか?

配列は変更可能であり、結果は入力配列のいずれかに格納できます。

どのように解決するの?

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];

2つの配列だけを連結する場合は push は、配列に追加する要素からなる複数の引数を受け取りますが、これを代わりに使って、新しい配列を作成せずに、ある配列から別の配列の末尾に要素を追加することができます。この場合 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)

しかし、大きな配列(10万メンバー以上のオーダー)の場合、配列の要素を push (を使用する)。 apply() またはECMAScript 2015のspread演算子)で失敗する可能性があります。このような配列の場合、ループを使用する方が良い方法です。参照 https://stackoverflow.com/a/17368101/96100 をご覧ください。