在js中数组的遍历循环是最最常用的方式,经常会将map/forEach/filter/some/every/reduce弄混淆,现在就将上面6个方法总结如下:
filter():返回一个符合func条件的元素数组
map():返回一个新的Array,每个元素为调用func的结果
forEach():没有返回值,只是针对每个元素调用func
some():返回一个boolean,判断是否有元素是否符合func条件
every():返回一个boolean,判断每个元素是否符合func条件
返回值 | 原数组是否改变 | 传参 | 参数的含义 | 使用方式 | |
---|---|---|---|---|---|
filter | 新数组 | 不改变 | function(currentValue,index,arr){ } | 当前值/索引值/ 对应的数组 | 对数组进行过滤 |
map | 新数组 | 不改变 | function(currentValue,index,arr){ } | 当前值/索引值/ 对应的数组 | 对数组进行改变 |
forEach | 无 | 不改变 | function(currentValue,index,arr){ } | 当前值/索引值/ 对应的数组 | 最简单的遍历 |
some | boolean | 不改变 | function(currentValue,index,arr){ } | 当前值/索引值/ 对应的数组 | |
every | boolean | 不改变 | function(currentValue,index,arr){ } | 当前值/索引值/ 对应的数组 | |
reduce | 求和 |
这个方法的区别与联系:
filter与map
①:均是返回的新数组
②:改变数组的时候用map, 想对数组进行过滤用filter.
forEach
没有返回值,是最简单的遍历的方式.
some与every
①:返回的都是boolean类型.
②:some是有一个符合就是true,every只要有一个是假均是false.
reduce
求和时使用
具体的还可以看如下的链接:
https://blog.csdn.net/cddcj/article/details/70173032
https://blog.csdn.net/github_31392345/article/details/48631067