ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript は concat なしで複数の配列を接続して問題を解決する_javascript スキル

Javascript は concat なしで複数の配列を接続して問題を解決する_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:54:291059ブラウズ

最初のメソッドはよく知られている 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 のままですが、リダイレクトや不要なメモリ オーバーフローが発生することなく、メモリが書き換えられます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。