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