这是我的 fiddle :http://jsfiddle.net/sepoto/Zgu9J/1/
我从一个反向函数开始:
function reverseArr(input) {
var ret = new Array;
for(var i = input.length-1; i >= 0; i--) {
ret.push(input[i]);
}
//I tried changing the return value to
//return ret.slice(0) which has no effect on making
//an independent copy
return ret;
}
我创建的第二个数组 pointOrigins2 不是 pointOrigins1 的独立副本。换句话说,修改 pointOrigins2 也是在修改 pointOrigins1,这不是我需要实现的。根据我在 StackOverflow 上的阅读,我尝试了一些选项,例如使用 slice 或使用 for 循环,但似乎还没有任何效果,所以我做了一个 fiddle 。
有没有办法制作一个独立的反向数组副本?
最佳答案
您正在制作一个新的独立数组,但您并未制作填充数组的项目的独立副本。您需要执行以下操作:
function reverseArr(input) {
var ret = new Array;
for(var i = input.length-1; i >= 0; i--) {
ret.push({
positionx: input[i].positionx,
positiony: input[i].positiony,
index: input[i].index
});
}
return ret;
}
这样您就可以生成新对象(具有相同的属性)以及新数组。
关于javascript - 在 JavaScript 中制作反向数组的独立副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666679/