天天看點

Array.prototype方法

參考位址:Array.prototype

介紹幾種常用的

Array.prototype.indexOf
Array.prototype.lastIndexOf
Array.prototype.every
Array.prototype.some
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.reduce
           

1、indexOf

indexOf()方法傳回在該數組中第一個找到的元素位置,如果它不存在則傳回-1

var _indexOf = function(){
    const arr = [,,,,];
    return arr.indexOf()!=-?true:false;
}
console.log(_indexOf());//false
           

2、lastindexOf

lastIndexOf() 方法傳回在該數組中最後一個找到的元素位置,和 indexof相反。

3、every()

every()可是檢測數組中的每一項是否符合條件

var _every = function(){
    const arr = [,,,,,-];
    const result = arr.every(function(item,index){
        return item>;
    });
    return result;
}
console.log(_every());//false
           

4、some()

some()可以檢測數組中是否有某一項符合條件

var _some = function(){
    const arr = [,,,,];
    const result = arr.some(function(item,index){
        return item >;
    })
    return result;
}
console.log(_some());//true
           

5、 forEach()

forEach為每個元素執行對應的方法

var _foreach = function(){
    const arr = [,,,,]
    for(const i of arr.keys()){
        console.log(arr[i]);
    }
}
_foreach();//1,2,3,4,5
           

6、 map()

map()對數組的每個元素進行一定操作(映射)後,會傳回一個新的數組

var _map = function(){
    const arr = [
    {first_name:"Colin",last_name:"Toh"},
    {first_name:"Addy",last_name:"Osmani"},
    {first_name:"Yehuda",last_name:"Katz"}
    ];
    return arr.map(function(item,index){
        item.full_name = [item.first_name,item.last_name].join(" ");
        return item;
    })
}
console.log(_map());
           

forEach 與map的差別

forEach:用來周遊數組中的每一項;這個方法執行是沒有傳回值的,對原來數組也沒有影響;數組中有幾項,那麼傳遞進去的匿名回調函數就需要執行幾次;每一次執行匿名函數的時候,還給其傳遞了三個參數值:數組中的目前項item,目前項的索引index,原始數組list;理論上這個方法是沒有傳回值的,僅僅是周遊數組中的每一項,不對原來數組進行修改;但是我們可以自己通過數組的索引來修改原來的數組;

var _foreackO = function(){
    const arr = [,,,,];
    var res = arr.forEach(function (item,index,input) {
            input[index] = item*;
    });
    console.log(res);//undefined
    return arr;
}
console.log(_foreackO());//10, 20, 30, 40, 50
           

map: map的回調函數中支援return傳回值;return的是啥,相當于把數組中的這一項變為啥(并不影響原來的數組,隻是相當于把原數組克隆一份,把克隆的這一份的數組中的對應項改變了);

var _mapO = function(){
    const arr = [,,,,];
    var res = arr.map(function (item,index,input) {
      return item*;
    });
    console.log(res);//10,20,30,40,50
    return arr;
}
console.log(_mapO());//1,2,3,4,5
           

7、 filter

該filter()方法建立一個新的比對過濾條件的數組

var _filter = function(){
    const arr = [,,,,];
    let res = arr.filter(function(item){
        return item === ;
    })
    console.log(res);//1
    return arr;
}
console.log(_filter());//1,2,3,4,5
           

8、 reduce()

reduce()可以實作一個累加器的功能,将數組的每個值(從左到右)将其降低到一個值。 說實話剛開始了解這句話有點難度,它太抽象了。

var _reduce1 = function(){
    const arr = [,,,,,];
    return arr.reduce(function(prev,next){
    console.log("prev:",prev);
    console.log("next:",next);
    return prev + " " +next;
        });
}
var _reduce2 = function(){
    const arr = [,,,,,,,];
    return arr.reduce(function(prev,next){
    console.log("prev:",prev);
    console.log("next:",next);
    prev[next] = (prev[next]+) || ;
    return prev;
  },{});
}
console.log(_reduce1());//1 2 3 4 5 5
console.log(_reduce2());//{1: 2, 2: 2, 3: 1, 4: 1, 5: 2}
           

繼續閱讀