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

 

posted @ 2018-12-19 15:43  艾路  阅读(24919)  评论(0编辑  收藏  举报