ECMAScript 5中的數組方法

ECMAScript 5中的數組方法(摘自javascript權威指南)

forEach(): 沒有for循環的break語句,不能終止遍歷,只能通過try{}catch{}拋出異常終止

    //三個參數: 數組元素、元素索引,數組本身
    var data = [1,2,3,4,5]
    data.forEach(function(v,i,a) {
        a[i] = v + 1;   // => [2,3,4,5,6]
    })

map():應該有返回值,返回一個新數組

    a = [1,2,3];
    b = a.map(function(x) {
        return x*x  // =>[1,4,9] 
    )

filter(): 返回的數組元素是調用得到數據的子集

    a = [5,4,3,2,1];
    values = a.fliter(function(x){
        return x > 3 ;      //  [5,4]
    })

注:filter會跳過稀疏數組中缺少的元素

//  壓縮稀疏數組的空缺
    var dense = sparse.filter(function(){
        return true;
    })

//  壓縮空缺並刪除undefined和 null的元素
    a = a.filter(funtion(x){
        return x !== undefined && x !== null;
    })

every(): 當且僅當數組中所有的元素調用判定函數都返回true,才返回true;

    a = [1,2,3,4,5];
    a.every(function(x){
        return x < 10 ;     // => true:所有值都小於10
    })

some(): 數組中至少有一個元素調用判定函數都返回true,就返回true;

    a = [1,2,3,4,5];
    a.some(function(x){
        return x%2 === 0;   // => true, a含有偶數值
    })

reduce():使用指定的函數將數組元素進行組合

參數: 1. 函數 2.傳遞給函數的初始值(可選)
空數組時,不帶初始值調用reduce會報錯

// * 傳遞的判定函數的參數依次:reduce的第二個參數,數組元素,數組索引,數組本身*

// 數組求和

// 有初始值
// 第一次: x = 0(reduce第二個參數), y = 1(數組第一個元素)
// 第二次:x = 1(第一次x+y的值); y = 2(數組的第二個元素);
// ...

    var a = [1,2,3,4,5];
    var sum = a.reduce(funciton(x,y){
        return x + y ;
    }, 0);




//數組求積

    var a = [1,2,3,4,5];
    var sum = a.reduce(funciton(x,y){
        return x * y ;
    }, 1);

indexOf()和lastIndexOf():

搜索整個數組中具有給定值的元素,==返回找到的第一個元素的索引或者如果沒找到返回-1==。indexOf()從頭至尾搜索,lastIndexOf反向搜索;

參數:
1.需要搜索的值;
2.指定數組的索引,從那裏開始搜索(可選),如果省略,從頭開始

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章