var arr1 = [1, 2, 3];
var arr2 = ["a","b","c","d","e","f"];
1腰湾、concat
var arr = arr1.concat(arr2); // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
Array對象提供的concat()方法,連接兩個或更多的數(shù)組处坪,并返回一個新數(shù)組根资,原數(shù)組不變架专。
但當我們需要連接多個數(shù)組的時候,效率很低玄帕,會造成很大的內存浪費部脚,所以這個方法肯定不是最好的。
2裤纹、 通過for循環(huán)
for(let i in arr1){
arr2.push(arr[i]);
}
console.log(arr2) // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
這樣寫性能相對來說要高一點委刘,但是會改變數(shù)組本身的值,而且很丑
3、通過map()
arr1.map(item=>{
arr2.push(item)
});
console.log(arr2) // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
這樣寫性能相對來說要高一點鹰椒,但是也會改變數(shù)組本身的值锡移,這樣看起來逼格高一點啦~~~
4、apply
函數(shù)的apply方法有一個特性漆际,那就是func.apply(obj,argv)淆珊,argv是一個數(shù)組。所以我們可以利用這點奸汇,直接上代碼:
1.
arr1.push.apply(arr1,arr2);
console.log(arr1) // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
2.
Array.prototype.push.apply(arr1,arr2);
console.log(arr1) // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
調用arr1.push這個函數(shù)實例的apply方法施符,同時把,arr2當作參數(shù)傳入擂找,這樣arr1.push這個方法就會遍歷arr2數(shù)組的所有元素戳吝,達到合并的效果。也會改變數(shù)組本身的值
5贯涎、ES6 – 擴展運算符
arr = [...arr1,...arr2]
console.log(arr) // [1, 2, 3, "a", "b", "c", "d", "e", "f"]
這個方法不會改變原數(shù)組的內容听哭,返回新數(shù)組。