1. for 循环合拼数组
let arr1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
let arr2 = ["a", "b", "c", "d", "e", "f", "g"];
for (let i in arr2) {
arr1.push(arr2[i]);
}
console.log(arr1); // 2,3,4,5,6,7,8,9,10,11,a,b,c,d,e,f,g
2. arr.concat(arr2) 会生成新的数组。
let arr = [1, 2, 3, 4, 5, 6];
let arr2 = ["f", "g", "h", "n"];
arr = arr.concat(arr2);
console.log(arr); // 1,2,3,4,5,6,f,g,h,n
3.push(…arr)
push 结合 ...[] 来实现, 会变更原数组。
let arr10 = [1, 2]
let arr11 = [3, 4]
arr10.push(...arr11);
console.log(arr10); // 1,2,3,4
4.Array.prototype.push.apply(arr1, arr2)
因为 push 是可以接收多个参数的,所以我们可以使用 apply 来实现。
会变更原数组。
var a = [1, 2, 3];
var b = [4, 5];
a.push(b); // [1,2,3,[4,5]] not merged
var c = Array.prototype.push.apply(a, b); // [1,2,3,4,5] merged
console.log(c); // 5
console.log(a); // [1,2,3,4,5]
console.log(b); // [4,5]
// 写法二
a.push.apply(a, b);
5. […arr, …arr2]
ES6 的语法,简单而实用。会生成新的数组。
let arr = [1, 2, 3, 4, 5]
let arr2 = ["f", "g", "h", "n"];
arr.push(...arr2);
console.log(arr); // 1,2,3,4,5,f,g,h,n