• array.forEach(function(currentValue,index,arr), thisValue)
  • array.map(function(currentValue,index,arr), thisValue)
  • array.filter(function(currentValue,index,arr), thisValue)
  • array.reduce(function(total,currentValue,index,arr), thisValue)

相同点:

  • 除了reduce()多了一个total,其他参数都一样
  • 迭代时不做修改。数组元素的范围是在 callback 方法第一次调用之前就已经确定了。

定义:

  • forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
  • map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
    map()方法按照原始数组元素顺序依次处理元素
  • filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。没有到没有符合条件时返回空数组。
  • reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
forEach map filter reduce
操作 循环(迭代) 映射 过滤器 汇总
返回值 undefined 返回新数组 返回新数组 返回计算结果total
改变原数组? 看情况
检测空数组? 不检测 不检测 不检测 不检测
forEach,for/in,map都是封装了for循环,只是在应用的对象上稍有些不同,例如,
forEach主要数组的一些简单遍历
map主要是对数内每个元素的操作
for/in主要是对象键值的一些遍历

filter方法主要是对数组的筛选过滤,返回符合条件的元素。

作者 admin

百度广告效果展示