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