zoukankan      html  css  js  c++  java
  • 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);
    打印结果:如下
     
     
     

  • 相关阅读:
    textarea聚焦的多种写法
    vue.js入门
    全选,反选
    jquery列表,点击反应
    SqlServer中offset..fetch 的使用问题
    复习Spring第四课---Spring对国际化的支持
    SqlServer的order by问题
    设计模式之---代理模式
    解决SpringMVC重复提交的问题
    Java知识复习(三)
  • 原文地址:https://www.cnblogs.com/moon-lee/p/12592796.html
Copyright © 2011-2022 走看看