我想替换数组中的整个对象。
var array = [ {name: "name1" }, { name: "name2" } ];
var element = array[0];
element = {name: "name3"};
alert(array[0].name);
在这段代码中,我期望输出名称3,为什么我不能像这样替换数组中的整个对象?这样做的好方法是什么?
答案 0 :(得分:16)
正确的方法是
array[0] = {name: "name3"};
您现有的代码无法正常工作,因为您正在使用
对第一个元素进行参考*var element = array[0];
然后你用另一个对象替换这个局部变量的值。这使原始数组保持不变。
答案 1 :(得分:2)
试试这个:
var array = [ {name: "name1" }, { name: "name2" } ];
array[0] = {name: "name3"};
alert(array[0].name);
element
不是实际的数组 - 它是数组的副本