我想替換數組中的整個對象。替換對象數組中的元素
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]' 。 –