美文网首页
☘️js map会不会改变原数组?

☘️js map会不会改变原数组?

作者: 索隆萨克 | 来源:发表于2019-08-21 09:58 被阅读0次

    答案是需要根据所操作的数组内容来区分,如果数组内容是引用类型,那原数组就会被改变。
    如果原数组是值类型,那原数组就不会被改变。
    看看下面的小例子就懂了。

    const arr = [{ name: "derek" }, { name: "emma" }];
    
    const temp_arr = arr.map(v => {
      v.age = 18;
      return v;
    });
    
    /**
     * 打印出的结果其实是相等的,因为改变map---》里面的v是一个对象,对象是引用类型,所以两个数组相等。
     */
    console.log('arr:', arr);
    console.log('temp_arr:', temp_arr);
    
    
    console.log('*'.repeat(80));
    /**
     * 下面这种操作值类型就不会改变了
     */
    
    const arr_value = [1, 2, 3];
    
    let temp_arr_value = arr_value.map(v => {
      return v*v;
    });
    
    console.log('arr_value:',arr_value);
    console.log('temp_arr_value:', temp_arr_value);
    

    结果:


    image.png

    相关文章

      网友评论

          本文标题:☘️js map会不会改变原数组?

          本文链接:https://www.haomeiwen.com/subject/ofzvsctx.html