var array=[{
"name":"张三"
},
{
"name":"李四"
},
{
"name":"王五"
}];
var array1=array;
var array2=array;
var array3=array;
array[0]['name']='赵六';
console.log(array);
console.log(array1);
console.log(array2);
console.log(array3);
上面创建了一个array
的数组,然后把值赋给了array1
,array2
,array3
其他的变量,我改了一下array[0]['name']
的值,其他几个变量值也跟着变成了赵六
原因:由于数组是引用变量 ,进行引用赋值 , 其实还是原来的数组 , 也就是说 ,我赋值给array里的name其实一直都是同一个地址
里存的同一个数组 , 所以 ,最后一次修改name后 ,每个引用都一起改掉了
解决方案:
var newArr = JSON.parse(JSON.stringify(array));
newArr[0]['name']='赵六';
console.log(array);
console.log(newArr);