every(),some(),filter(),map(),reduce(),forEach()

es6中新增了一些方法能夠更方便的操做數組,如every(),some(),filter(),map(),reduce(),forEach(),本文主要介紹他們的用法以及區別es6


every:檢測數組中的每一個元素是否都符合條件 - 全部數組

let arr = [10, 2, 5, 22, 45]      
let everyNum = arr.every((item,index)=>{        
    return item > 44      
})      
console.log('everyNum=>',everyNum) //false複製代碼

some:檢測數組中是否有元素知足條件 - 部分bash

let arr = [10, 2, 5, 22, 45]
let someNum = arr.some((item,index)=>{        
    return item > 44      
})      
console.log('someNum=>',someNum) //true複製代碼


filter: 返回數組中知足條件的元素(過濾)ui

let arr = [10, 2, 5, 22, 45]
let fliterNum = arr.filter((item,index)=>{        
    return item > 10      
})      
console.log('fliterNum=>',fliterNum) //[22, 45]複製代碼


map:返回處理後的數組spa

let arr = [10, 2, 5, 22, 45]
let mapNum = arr.map((item,index)=>{        
    return item + 1      
})      
console.log('mapNum=>',mapNum) //[11, 3, 6, 23, 46]複製代碼


reduce:讓數組的先後項作出某種計算code

let arr = [10, 2, 5, 22, 45]
let reduceNum = arr.reduce((prev, next, index)=>{        
    //prev: 第n次和第n+1次的和        
    //next: 每次要往上加的值        
    return prev + next      
})      
console.log('reduceNum=>',reduceNum) //84複製代碼


forEach:循環數組中的每一項作一件事,不能return出來string

let arr = [10, 2, 5, 22, 45]
let forEachNum = arr.forEach((item, index)=>{        
    console.log('forEach=>', item)        
    //forEach=> 10  forEach=> 2  forEach=> 5  forEach=> 22  forEach=> 45      
})複製代碼

相比於map,forEach沒有返回值(undefined),不能return出來,而且是直接修改原來的arr的值;map返回一個數組,原數組arr不受影響;it

相關文章
相關標籤/搜索