zoukankan      html  css  js  c++  java
  • map,forEach

    一、相同点:

    1.都是循环遍历数组中的每一项

    2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组)

    3.匿名函数中的this都是指向window

    4.只能遍历数组

    二、不同点

    1.map()会分配内存空间存储新数组并返回,forEach()不会返回数据。

    2.forEach()允许callback更改原始数组的元素(现在还不是很懂)。map()返回新的数组。

    map:新数组,有返回

    var array = [1, 2, 3, 4];
    let forEachArr = array.forEach((value,index,array)=> {
        array[index] = value*10;  
        return value*2
    });
    console.log(forEachArr)  //undefined 不会生成新数组
    console.log(array)  //[10, 20, 30, 40] 直接更改原始数据

     foreach:无返回

    var array = [1, 2, 3, 4];
    let mapArr = array.map((value,index,array)=>{
      array[index] = value*10;  
      return value*2
    });
    console.log(mapArr)  // [2, 4, 6, 8] // 返回生成新数组 return
    console.log(array)   // [10, 20, 30, 40] 直接更改原数组

    1、map:

      eg:

      map()方法创建了一个新数组,但新数组并不是在遍历完array1后才被赋值的,而是每遍历一次就得到一个值

    var array = [1,4,9,16];
    const map = array.map(x => x *2);
    console.log(map);       //> Array [2,8,18,32]
    var array = [1, 4, 9, 16];
    const map = array.map(x => {
        if (x == 4) {
            return x * 2;
        }
    });
    console.log(map); //Array [undefined, 8, undefined, undefined]
    var array = [1, 4, 9, 16];
    const map = array.map(x => {
        if (x == 4) {
            return x * 2;
        }
        return x;
    });
    console.log(map); //Array [1,8,9,16]

     

  • 相关阅读:
    windows下mysql初始密码设置
    python生成简单的验证码
    python中HTMLParser简单理解
    Windows批处理(cmd/bat)常用命令小结
    文件结束的判断和结束符的理解
    交换机与路由器
    结构体字节对齐
    有(无)符号char型及其溢出问题
    kubernetes离线包安装教程
    kubernetes(K8S)快速安装与配置集群搭建图文教程
  • 原文地址:https://www.cnblogs.com/init00/p/12627512.html
Copyright © 2011-2022 走看看