【发布时间】:2017-10-14 16:39:55
【问题描述】:
我有一个对象数组(全局范围):
objects =[{id:"0",radius:3,},{id:"1",radius:2,}].
这个数组是通过改变单个对象来操作的:
objects =[{id:"0",radius:4,},{id:"1",radius:5,}].
或通过将新对象推送到数组:
objects =[{id:"0",radius:4,},{id:"1",radius:5,},{id:"2",radius:3,}].
每次操作后,我想将整个数组保存到另一个名为“历史”的数组中,以便能够调用每个状态。
我试过了:
var history_obj =[];
var history_index = 0;
function save_to_history(){history_obj[history_index]=objects; history_index++;}
还有:
function save_to_history(){history_obj.push(objects); history_index++;}
我调试了脚本并发现,在运行 save_to_history() 函数 n 次后,我的 history_obj 包含许多 n 个数组,但是所有数组都是相同的(应该是最后一个要推送)不是 [[state1],[state2],[state3]] 而是 [[state3],[state3],[state3]]。
我在这个论坛上读到,这个问题与范围有关。
所以我试过了:
function save_to_history(){
var status = objects;
history_obj[history_index]=status;
history_index++;}
结果是一样的。 提前感谢您的帮助。
【问题讨论】:
标签: javascript arrays