数组循环:forEach(),map(),filter(),reduce(),find()

1、forEach()

    forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。类似于军人接受检阅,但是检阅结束并不会返回任何东西,也不会改变原数组

注意: forEach() 对于空数组是不会执行回调函数的。

let arr = [1,2,3,4,5]

arr[].forEach(function(value,index,array){

  //do something

})

a参数:value数组中的当前项, index当前项的索引, array原始数组;

b数组中有几项,那么传递进去的匿名回调函数就需要执行几次;

c理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组;

arr.forEach(item => {

console.log(item)

})// 1 2 3 4 5

2、map()

有返回值,可以return 出来。比如说去超市买东西,你拿了一个物品清单,然后服务员帮你拿好东西,返回给你一个物品的新数组,但是对清单原数组不发生改变

arr[].map(function(value,index,array){

  //do something

  return XXX

})

参数:value数组中的当前项,index当前项的索引,array原始数组;

let goodsList = ['水蜜桃','酸奶','辣条']

let goods = goodsList.map(item => {

    // do something

    console.log(item) // 水蜜桃 酸奶 辣条

})

3、filter()

    filter方法是对数据中的元素进行过滤,操作当前元素集,删除不匹配的元素,得到一个新的集合。让男生排队身高高于180的就归入到新数组中,最后返回一个里面装着所有180+的男生的数组,不改变原数组(根据某个条件查询数据时可以用,比如说后台管理系统的表格查询)

let  arr = ['aa','bb','cc']

let newArr = arr.filter((item, index) => {

    // 写需要的内容

})


filter()

4、reduce()

    reduce主要是为了对所有数组进行累加,最后返回一个值,不改变原数组,类似让男生把排队把把身高加起来

        let a =arr.reduce((prev, cur, index, arr) => {

                console.log(prev,cur,index,arr) // 输出试一下就知道了

})

5、find()   ->ie都不支持

你去找人想找一个180的男生帮你去搬砖,只要找到第一个就停止遍历,因为只要找一个,为了减少无用的操作,虽然其他方法也能实现同样的要过,但是最好用find()

find()


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容