大家好,又见面了,我是你们的朋友全栈君。
相同点: 1.都是循环遍历数组中的每一项; 2.在遍历中执行匿名函数都可以接收三个参数,分别为:遍历过程的每一项、遍历序号(索引值)、原数组; 3.执行的匿名函数中 的this都指向window。 不同点: map(): 根据遍历执行的匿名函数,对于原数组中的每个值产生一个对应的值,并返回一个新的数组,存在一个映射关系,并且不会改变原数组,不会对空数组进行检测。
var arr = [0,1,2,3,4];
var str = arr.map(function(i,index,arr){
console.log(this);
return ++i;
},this);
console.log(str); //结果为 [1,2,3,4,5]
var arr = [0,1,2,3,4];
var sum = 0;
var str = arr.forEach(function(i,index,arr){
sum += i;
console.log("sum的值为:",sum);
}) //执行5次,最终结果 10
**
** map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。
在我们的例子中,回调函数只有一个参数,即数组中元素的值 (val 参数) ,但其实,你的回调函数也可以支持多个参数,譬如:元素的索引index、原始数组arr。
例子:使用 map 方法来为 oldArray 中的每一项增加3,并且在 newArray 中保存它们。 oldArray 不应该被改变。
var oldArray = [1,2,3,4,5];
var newArray = oldArray.map(function(w){
return w+3;
});
输出结果为:[4,5,6,7,8]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194198.html原文链接:https://javaforall.cn