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