for和foreach的区别js(js中的 map,foreach,reduce 之间有什么区别么)

本文目录
js中的 map,foreach,reduce 之间有什么区别么
forEach: 对数组中每一个元素都运行函数,该方法没有返回值。如果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环
map:对数组中每一个元素都运行函数, 返回由每次函数执行的结果组成的数组。果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环,和forEach不同的是,它最终会返回一个新的数组,数组的元素是每次处理先前数组中元素返回的结果
reduce: 对数组中的所有元素调用指定的回调函数。 该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
还是看例子来理解吧:
var arr3 = ;
// 数组中每个元素都要翻10倍
var arr4 = arr3.map(function(ele,index,arr2) {
return ele*10;
});
console.log(arr4.toString()); //10,20,90,50,40
arr3.forEach(function(ele,index,arr){
console.log("模拟插入元素到数据库:"+ele);
});
打印结果:
模拟插入元素到数据库:1
模拟插入元素到数据库:2
模拟插入元素到数据库:9
模拟插入元素到数据库:5
模拟插入元素到数据库:4
reduce的测试例子:
// Define the callback function.
function appendCurrent (previousValue, currentValue) {
return previousValue + "::" + currentValue;
}
// Create an array.
var elements = ;
// Call the reduce method, which calls the callback function
// for each array element.
var result = elements.reduce(appendCurrent);
document.write(result);
// Output:
// abc::def::123::456
for和foreach哪个效率高点
for 循环对于迭代数组和顺序处理很有用
foreach,in是针对IEnumerable和IEnumerable《T》的
如果是单纯的数组,都差不多,如果需要用到数组项的索引或要修改数组项的话就得只能用for了
对于其他的集合而言,哪个更快取决于其索引器的实现和IEnumerable或IEnumerable《T》的实现
主要按自己的需求选择,不用过于纠结性能问题,如果很在意的话强烈推荐自己做下性能测试比较下

更多文章:
数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)
2026年9月7日 17:00
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40







