javascript 二维(多维)数组的复制问题

最近在项目中遇到一个动画暂停的效果,需要在动画停止的时候检测当前坐标和已经运行的时间,从而调节时间轴为再次运行时加速。 但是在数组保存方面折腾了半天。

var orbitArray = [], lineArray = [];
orbitArray  = lineArray; //错误方式,javascript中数组为引用类型(类似传址方式)
orbitArray = lineArray.concat(); //错误方式二,这样复制数组貌似没问题了,但其实该方式仅能复制第一层数组,而我们用到的是一个二维的数组。
orbitArray = $.extend(true, [], lineArray); //二维数组复制,jquery的一种复制方式,比较方便,当然大家也可以自己写一个原生JS的多维数组复制方式,这里不再啰嗦
for (var i = lineArray.length - 1; i >= 0; i--) {
    orbitArray[i][3] = lineArray[i][3]/rate;
    };
console.log(lineArray);

 

posted @ 2014-02-12 16:10  前端小小菜  阅读(1086)  评论(0编辑  收藏  举报