js数组的forEach与map方法


数组对象的作用是:使用单独的变量名来存储一系列的值。
 
我们今天来说一下数组的forEach与map方法
  • forEach 用于调用数组的每个元素
  • map 返回一个与原数组长度相等的新数组 
1、forEach() 
 
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的
参数:function(currentValue, index, arr)
  • currentValue   必需。当前元素
  • index      可选。当前元素的索引值。
  • arr       可选。当前元素所属的数组对象。 
 
1)使用forEach遍历数组
1 var arr=[1,2,3,4,5,6,7]; 2 arr.forEach(function(a,b,c){ 3  console.log(a,b,c); 4 })
打印结果:如下
 
 2)使用forEach可以跳过空元素
1 var arr = [1, 2, 3, 5, , 6, 7, 8, 9]; 2 arr.forEach(function(item, index) { 3  console.log(item, index); 4 })
打印结果,如下
3)使用forEach复制数组的方法 (全部复制,不跳过空元素,)
1 var arr = [2, 4, 6, , 8, 3, 2]; 2 var arr1 = []; 3 arr.forEach(function(item, index) { 4     arr1[index] = item; 5 }) 6 console.log(arr1);
打印结果:如下
 
2、map()
 
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
 
参数:function(currentValue, index, arr)
  • currentValue   必需。当前元素
  • index         可选。当前元素的索引值。
  • arr             可选。当前元素所属的数组对象。 

 

1)遍历数组 ----- map会返回一个与原数组长度相等的新数组
1 var arr = [3, 5, 7, 9, , 1, 2, 4]; 2 var arr2 = arr.map(function(item, index, arr) { 3  console.log(item, index, arr); 4 });
打印结果:如下
2)在map中使用return 就是在对应的下标中添加对应的数据
例1:
1 var arr = [3, 5, 7, 9, , 1, 2, 4]; 2 var arr2 = arr.map(function(item, index, arr) { 3     // 在map中使用return 就是在对应的下标中添加对应的数据
4     return "a"; 5 }); 6 console.log(arr2);
打印结果:如下
例2:
1 var arr = [3, 5, 7, 9, , 1, 2, 4]; 2 var arr3 = arr.map(function(item, index, arr) { 3     // 在map中使用return 就是在对应的下标中添加对应的数据
4     return item + 10; 5 }); 6 console.log(arr3);

打印结果:如下

 

3、forEach() 和 map() 两者区别 
 
 1) forEach()返回值是undefined,不可以链式调用。
1 var arr = [1, 2, 3, 4, 5, , 7, 8, 9]; 2 var arr1 = arr.forEach(function(item, index, arr) { 3     // 使用return无效
4     return arr1; //undefined
5 }); 6 console.log(arr1);
打印结果:如下
 
2) map()返回一个新数组,原数组不会改变。
1 var arr = [1, 3, 5, 7, 2, 4, 6, 8]; 2 var arr1 = arr.map(function(item) { 3     if (item > 4) { 4         return item; 5  } 6 }); 7 console.log(arr); 8 console.log(arr1);
打印结果:如下
 
 
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM