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

相关文章
相关标签/搜索