js合并数组的方法
我们可以使用push将元素追加到数组中。push接受可变数量的参数,我们可以一次推送多个元素。但是,如果我们传递一个数组来推送,它实际上会将该数组作为单个元素添加,而不是单独添加元素,我们最终得到一个数组内的数组。
1 let arr1 = [1, 2, 3]; 2 let arr2 = ['a', 'b']; 3 arr1.push(arr2); 4 console.log(arr1);//[1, 2, 3, Array(2)]
concat可以合并数组,但它并不附加到现有数组,而是创建并返回一个新数组。
let arr1 = [1, 2, 3]; let arr2 = ['a', 'b']; let arr3 = arr1.concat(arr2); console.log(arr1);//[1, 2, 3] console.log(arr3);//[1, 2, 3, "a", "b"]
apply()方法调用一个具有给定this值的函数,以及作为一个数组(火类似数组对象)提供的参数。
let arr1 = [1, 2, 3]; let arr2 = ['a', 'b']; arr1.push.apply(arr1, arr2); console.log(arr1);//[1, 2, 3, "a", "b"]
apply()允许在某些本来需要写成遍历数组变量的任务中使用内建的函数。比如Math.max/Math.min来找出一个数组中的最大/最小值。需要注意的是:当对一个方法传入非常多的参数(比如10000个)时,很可能会导致越界问题。
let numbers=[5,6,2,3,1]; let max=Math.max.apply(null,numbers);//6 let min=Math.min.apply(null,numbers);//1