apply方法別有他用!

首先是apply()一個很強大的功能——能將一個數組默認轉化爲參數列表!!!數組

應用:app

1.求出一個數組中的最大值spa

var arr= [1, 3, 3, 6]; var max =Math.max.apply(null,arr); alert(max); // 6

Math.max()方法接受多個參數,可是不接受數組,因此直接Math.max(arr)是沒法達到效果的,由apply()將數組轉化成參數列表進行操做。prototype

2.合併數組code

①使用concat()方法blog

var arr1 = [1, 3, 3, 6]; var arr2 = [2, 4, 5, 6]; var arr = arr1.concat(arr2); alert(arr); // [1,3,3,6,2,4,5,6]

concat()方法不會改變原數組,只能返回一個新的數組。class

②循環遍歷插入循環

var arr1 = [1, 3, 3, 6];
    var arr2 = [2, 4, 5, 6];
    var arr2Len = arr2.length;

    for(var i=0; i<arr2Len; i++){
        arr1.push(arr2[i]);
    }
    alert(arr1);    // [1,3,3,6,2,4,5,6]

③apply()方法遍歷

var arr1 = [1, 3, 3, 6];
    var arr2 = [2, 4, 5, 6];

    var arr = Array.prototype.push.apply(arr1, arr2);
    alert(arr);      //8
    alert(arr1);     // [1,3,3,6,2,4,5,6]

直接將arr2中的內容插入到arr1中,表達式返回值是數組的長度。方法

相關文章
相關標籤/搜索