24、フロントエンド知識 - マージ配列

配列をマージするには、いくつかの方法があります。

VAR ARR1 = [1、2、3]; VAR ARR2 = [ ""、 "B"、 "C"、 "D"、 "E"、 "F"]。

  

1、CONCAT

VAR ARR = arr1.concat(ARR2)。// [1、2、3、 ""、 "B"、 "C"、 "D"、 "E"、 "F"]

配列オブジェクトは、二つ以上の配列を連結する、連結()メソッドを提供し、新しい配列、不変の元の配列を返します。
これは確かに最善の方法ではありませんので、しかし、我々は複数のアレイを接続する必要がある場合に、効率が非常に低く、それは、メモリの偉大な廃棄物が発生します。

2、forループ

以下のために、{(I ARR1でみましょう)
    (ARR [i])とarr2.push。
}
console.log(ARR2)// [1、2、3、 ""、 "B"、 "C"、 "D"、 "E"、 "F"]

書き込み性能に比較的少し高いですが、それは、配列そのものの値、および醜いを変更します

図3に示すように、地図()

 arr1.map(項目=> {
    arr2.push(アイテム) 
 });
  console.log(ARR2)// [1、2、3、 ""、 "B"、 "C"、 "D"、 "E"、 "F"]

書き込み性能に比較的少し高いですが、配列自体の値を変更しますので、それは~~~グリッドの友人を強制的に少し高いように見えます

4、適用されます

適用方法の機能は、特徴そのfunc.apply(OBJ、ARGV)を有し、ARGVはアレイです。だから我々は、コードに直接これを使用することができます:

1。
arr1.push.apply(ARR1、ARR2)。   
console.log(ARR1)// [1、2、3、 ""、 "B"、 "C"、 "D"、 "E"、 "F"] 
2。
Array.prototype.push.apply(ARR1、ARR2)。
console.log(ARR1)// [1、2、3、 ""、 "B"、 "C"、 "D"、 "E"、 "F"]

コールは、この方法の機能インスタンスを適用し、同じ時間をarr1.pushので、配列のすべての要素を介して、この方法の意志ループが連結結果を達成ARR2 arr1.push、パラメータとして渡さARR2。これは、配列自体の値を変更します

5、ES6 - 拡張演算子

ARR = [... ARR1、... ARR2]
console.log(ARR)// [1、2、3、 ""、 "B"、 "C"、 "D"、 "E"、 "F"]

この方法では、元の配列の内容を変更し、新しい配列を返していません。

 

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/jianguo221/p/11832739.html