Array相關操做

  • indexOf數組

    使用場景:
    查找一個數組中是否包含某個元素, 若是有則返回下標值, 沒有則返回-1app

  • mapcode

    適用場景:批量操做數組,一般用來對元素進行總體格式化或計算操做, 結果會返回一個數組.callback中需返回一個值來進行保存, 以產生新的數組
    e.g.:排序

var oldArr = [
    {first_name:"Colin",last_name:"Toh"},
    {first_name:"Addy",last_name:"Osmani"},
    {first_name:"Yehuda",last_name:"Katz"}
];

function getNewArr(){
    return oldArr.map(function(item,index){
        item.full_name = [item.first_name,item.last_name].join(" ");
        return item;
    });
}
console.log(getNewArr());
  • filterget

    適用場景:篩選過濾數組元素, 能夠生成一個新的數組, 而不更改原數組, callback中需返回一個規則, 做爲過濾的條件it

var arr = [
    {"name":"apple", "count": 2},
    {"name":"orange", "count": 5},
    {"name":"pear", "count": 3},
    {"name":"orange", "count": 16},
];

var newArr = arr.filter(function(item){
    return item.name === "orange";
});
  • forEachio

    適用場景:
    對原數組進行操做, 更改原來的元素 (與map()相似, 可是是直接更改原數組的), 因爲是直接對原數組進行操做, 因此不須要返回值console

reduce(function (prev, next) {}, initial)ast

適用場景:這是一個數組的累加器,能夠依次對各元素進行累加操做, 須要返回操做以後的結果值供下一個循環使用(若是不傳入inital,則將數組的第0位做爲prev,若是傳入intial, 則將inital做爲prev, next爲數組的第0位)function

var arr = ["apple","orange","apple","orange","pear","orange"];

function getWordCnt(){
    return arr.reduce(function(prev,next){
        prev[next] = (prev[next] + 1) || 1;
        return prev;
    },{});
}
console.log(getWordCnt());
  • sort

    適用場景: 對原數組進行排序操做,會更改原數組.默認升序排列 . 若自定義排序規則,則需在callback中返回一個自定義規則, 當知足規則時, 數組會進行換位操做

相關文章
相關標籤/搜索