我們可以使用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