js-es6數組的方法find()、findIndex()、 forEach() 、map()、filter()、reduce()、some()、every()

1.find()、findIndex()

var stu =[
    {
        "name": "張三",
        "gender": "男",
        "age": 20
    },
    {
        "name": "王小毛",
        "gender": "男",
        "age": 20
    },
    {
        "name": "李四",
        "gender": "男",
        "age": 20
    }
]

stu.find((element) => (element.name == '李四'))  // 返回的是{name: "李四", gender: "男", age: 20}
stu.findIndex((element)=>(element.name =='李四'))  // 返回的是索引下標:2

2.forEach()

var arr = [1,2,3,4];
arr.forEach((item,index,arr) => {
    console.log(item) //結果爲1,2,3,4
})

//forEach遍歷數組,無返回值,不改變原數組,僅僅只是遍歷、常用於註冊組件、指令等等。

3.map()

var arr = [1,2,3,4];
let arr2 = arr.map((item,index,arr) => {
    return item*10 //新數組爲10,20,30,40
})

改變當前循環的值,返回一個新的被改變過值之後的數組(map需return),一般用來處理需要修改某一個數組的值。
map遍歷數組,返回一個新數組,不改變原數組的值。

4.filter()

filter函數可以看成是一個過濾函數,返回符合條件的元素的數組
filter需要在循環的時候判斷一下是true還是false,是true纔會返回這個元素;

var arr = [1,2,3,4];
arr.filter((item,index,arr) => {
    return item > 2 //新數組爲[3,4]
})

//filter過濾掉數組中不滿足條件的值,返回一個新數組,不改變原數組的值。

5.reduce()

var arr = [1,2,3,4];
arr.reduce((result,item,index,arr) => {
    console.log(result) // 1  3  6  result爲上次一計算的結果
    console.log(item)  // 2  3  4
    console.log(index) // 1  2  3
    return result+item //最終結果爲10
})

//reduce 讓數組的前後兩項進行某種計算。然後返回其值,並繼續計算。不改變原數組,返回計算的最終結果,從數組的第二項開始遍歷。

6.some()

var arr = [1,2,3,4];
arr.every((item,index,arr) => { // (數組具體項,位置,數組本身);
    return item > 1 //結果爲false
})

//遍歷數組每一項,每一項返回true,則最終結果爲true。當任何一項返回false時,停止遍歷,返回false。不改變原數組

1.some()方法,遍歷數組的每一項,若其中一項爲 true,則返回true;
2.every()方法,遍歷數組每一項,若全部爲true,則返回true;

以上後6個方法均爲ES6語法,IE9及以上才支持。不過可以通過babel轉意支持IE低版本。
以上均不改變原數組。
some、every返回true、false。
map、filter返回一個新數組。
reduce讓數組的前後兩項進行某種計算,返回最終操作的結果。
forEach 無返回值。

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