数组拼接的4种方法

142 阅读1分钟

方法1

apply() 数组方式传参

let a = ['1', '2']
let b = ['2', '3']
let arr1 = [1, 2]
let arr2 = [3, 4]
console.log(a);      // ['1','2']
console.log(b);      // ['2','3']

例 1

a.push.apply(a, b)   //将b数组放进了a数组中  相当于数组合并(拼接)
console.log(a);      //  ['1', '2', '2', '3'] 
解析:使用apply()   方法  a.push() 意思是:在a数组中添加 apply(a,b)  
括号里a代表this指向  b     代表传参   不过传的是数组参数 

那么也可以修改this指向来  操作
a.push.apply(b,a)   //['2','3','1','2']}
解析:因为apply和call和bind都是动态修改this指向,这里用的apply,
原本应是:往a数组里添加a数组参数==>往b数组里添加a数组参数 

例 2

arr1.push.apply(arr1, arr2)  //往a数组里添加b数组
console.log(arr1);    // [1, 2, 3, 4]

方法2

concat() 方法

let c = [1, 2, 3]
let d = ['a', 'b', 'c']
console.log(c);      // [1,2,3]
console.log(d);      // ['a', 'b', 'c']

例1

 const cd=c.concat(d) // c数组里面添加 d数组的元素
 console.log(cd)      // [1, 2, 3, 'a', 'b', 'c']
 //注意 
 const cd1=d.concat(c) // d数组里面添加 c数组的元素
 console.log(cd1)    // ['a', 'b', 'c',1, 2, 3 ]

concat() 拓展

concat() 也可以用来拼接字符串

 let as='hello'
 let ass='baby'
 const addc=  as.concat(ass)
 console.log(addc)    //hellobaby

方法3

使用forEach 遍历

let c = [1, 2, 3]
let d = ['a', 'b', 'c']
console.log(c);      // [1,2,3]
console.log(d);      // ['a', 'b', 'c']

 d.forEach(item => c.push(item))
 console.log(c);  //[1, 2, 3, 'a', 'b', 'c']
 

方法 4

扩展运算符 ...

let c = [1, 2, 3]
let d = ['a', 'b', 'c']
console.log(c);      // [1,2,3]
console.log(d);      // ['a', 'b', 'c']
//使用拓展运算符
const gf=[...c, ...d]
console.log(gf);  // [1, 2, 3, 'a', 'b', 'c']