替换对象数组中的元素

Rol*_*ndG 8 javascript

我想替换数组中的整个对象.

http://jsfiddle.net/CWSbJ/

var array = [ {name: "name1" }, { name: "name2" } ];
var element = array[0];
element = {name: "name3"};
alert(array[0].name);
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我期望输出名称3,为什么我不能像这样替换数组中的整个对象?这样做的好方法是什么?

Jon*_*Jon 16

正确的方法是

array[0] = {name: "name3"};
Run Code Online (Sandbox Code Playgroud)

您现有的代码无法按预期工作,因为您正在将参考*带到第一个元素

var element = array[0];
Run Code Online (Sandbox Code Playgroud)

然后你用另一个对象替换这个局部变量的值.这使原始数组保持不变.