我想替换数组中的整个对象。替换对象数组中的元素
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
是不实际的数组 - 它是一个数组的副本
你只是分配一个其他值'element',不'数组[0]' 。 –