- 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主要是对象键值的一些遍历
forEach主要数组的一些简单遍历
map主要是对数内每个元素的操作
for/in主要是对象键值的一些遍历
filter方法主要是对数组的筛选过滤,返回符合条件的元素。