配列をマージするには、いくつかの方法があります。
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"]
この方法では、元の配列の内容を変更し、新しい配列を返していません。