javascript - js数组map方法,如果原数组中是对象或数组,原数组也改变,为什么?

查看:145
本文介绍了javascript - js数组map方法,如果原数组中是对象或数组,原数组也改变,为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var list = [{'a': 1},{'a': 2}];
var newList = list.map(function(index){
    return index.a += 1;
});
console.log(newList,'newList',list,'list');
// list也改变了 list = [{'a': 2},{'a': 3}]
// 本人小白,求大神指教,勿喷,谢谢!

解决方案

跟map没关系

js对象是引用类型,字符和数字是基本类型

基本类型传值是复制

引用类型传值是引用

举个例子:

var a = 1;
var b = a;
b++;
console.log(a);

var a = [1];
var b = a;
b[0]++;
console.log(a);

这篇关于javascript - js数组map方法,如果原数组中是对象或数组,原数组也改变,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆