这是我的小提琴: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 上的阅读,我尝试了一些选项,例如使用切片或使用 for 循环,但似乎还没有任何效果,所以我做了一个小提琴。
有没有办法制作反转数组的独立副本?
您正在创建一个新的独立数组,但您并未创建填充数组的项目的独立副本。你需要做类似的事情:
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;
}
这样您就可以生成新对象(具有相同属性)以及新数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)