最初のメソッドはよく知られている concat ですが、このメソッドの 1 つの点は、既存の配列を変更せず、接続された配列のコピーのみを返すことです。
新しい配列の要素を既存の配列に追加したいだけの場合は、それを再割り当てする必要があり、実際にはリソースを少し無駄にしています。簡単に言うと、新しく作成した配列に新しいメモリ領域を割り当て、arr1 をこの新しいメモリ アドレスにリダイレクトする必要があります。では、メモリ内の元の配列はどうなるでしょうか。ブラウザがそれを正しく再利用できるかどうかによって決まります。
次の例:
var arr1 = [1,2,3];
var arr1 = arr1.concat([4,5]);
このリソースを回避する良い方法はありますか?消費?
ここでは、JavaScript のネイティブ apply メソッドを使用してこれを実現できます。まず次のコードを見てください。
var arr1= [1,2,3]
arr1.push.apply(arr1,[4,5]); 🎜>
これで完了です。このメソッドは、apply メソッドの特性 (2 番目のパラメーターは複数の配列型) を巧みに利用して、push メソッドがそれ自体から複数の値を渡すことしかできないようにします。上記のコードは実際には
arr1.push(4,5) ;
このようにして、arr1 は同じ arr1 のままですが、リダイレクトや不要なメモリ オーバーフローが発生することなく、メモリが書き換えられます。