javascript - 在 JavaScript 中制作反向数组的独立副本

标签 javascript arrays reverse

这是我的 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/

相关文章:

javascript - 在 JavaScript 中使用 for 循环就地反转字符串

javascript - 面板不会使用 jquery 滑出

javascript - MongoDB 通过 CLI 插入集合

javascript - JQuery DatePicker 突然崩溃(2015 年 11 月)

arrays - 无需评估即可动态创建结构数组

c - 使用 Function 反转字符串并将整个字符串返回到主函数

javascript - JS 中的二维矩阵,带有行和列名称

c++ - 在 C 中将一个数组中的字符连接到另一个数组

javascript - 如何使用+ 4000-5000表单字段将Angular 6 JS监听器保持在最低水平

c# - 如何在c#中以反向模式做子串