js中的 map,foreach,reduce 之间有什么区别么
forEach:?对数组中每一个元素都运行函数,该方法没有返回值。如果你想对数据里的每一个元素进行处理,可以采用forEach来替换?for循环
map:对数组中每一个元素都运行函数, 返回由每次函数执行的结果组成的数组。果你想对数据里的每一个元素进行处理,可以采用forEach来替换?for循环,和forEach不同的是,它最终会返回一个新的数组,数组的元素是每次处理先前数组中元素返回的结果
reduce:?对数组中的所有元素调用指定的回调函数。?该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
还是看例子来理解吧:
var?arr3?=?[1,2,9,5,4];//?数组中每个元素都要翻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?=?["abc",?"def",?123,?456];
//?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
js 在for循环中var和let的区别
1while;
var num = 1;//1、声明循环变量
while (num=0);
document.write(num);//-1
3,for循环
for (var num =1; num
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!