Javascript 仅n级反向阵列

Javascript 仅n级反向阵列,javascript,optimization,multidimensional-array,reverse,multi-level,Javascript,Optimization,Multidimensional Array,Reverse,Multi Level,我正在寻找一种在javascript中反转多维数组的好方法,但只能在特定级别(n)上反转,如: [ [[2,1], [4,2], [6,3], [3,4]], [[5,1], [1,2], [3,3], [4,4]], [[4,1], [7,2], [1,3], [2,4], ['monkey', [3,4,5,6,7]]] ] 其中(n=2): 目前,我已经编写了这个满足我需求的简短原型: Array.prototype.rever

我正在寻找一种在javascript中反转多维数组的好方法,但只能在特定级别(n)上反转,如:

[
        [[2,1], [4,2], [6,3], [3,4]], 
        [[5,1], [1,2], [3,3], [4,4]], 
        [[4,1], [7,2], [1,3], [2,4], ['monkey', [3,4,5,6,7]]]
]
其中(n=2):

目前,我已经编写了这个满足我需求的简短原型:

    Array.prototype.reverseAtLevel = function(level){
        if(level < 0)
            return;
        if(level == 0)
            this.reverse();
        this.forEach(function(element, index, array){
            if(element instanceof Array)
                element.reverseAtLevel(level-1);
        });
        return;
    };
这是正确的方法吗

编辑: 我不希望出现“direct”.reverse()行为,它将我的第一个示例输出为:

[
        [[4,1], [7,2], [1,3], [2,4], ['monkey', [3,4,5,6,7]]],
        [[5,1], [1,2], [3,3], [4,4]], 
        [[2,1], [4,2], [6,3], [3,4]]
]

那么它有效吗?如果你在收到反馈后,最好还是戴上它,我不认为你真的在用它做任何事情。您所做的只是将同一数组传递到某个较低级别,然后在到达级别0时(您肯定会这样做)。您正在反转阵列。那么它与直接反转阵列有何不同呢。它所做的一切最终都是相反的。对我来说很没用。我可能错了,但这就是我看到你的程序时的感受。实际上,我的数组只有在我的例子中看到的成对的情况下才能反转。我不想在我的示例中反转所有内容或三个一级数组的顺序(这是“直接反转”的行为),只是在一个精确的n级。无论如何,我承认我的例子不是我能用的最好的例子。
aMultiDim.reverseAtLevel(2)
[
        [[4,1], [7,2], [1,3], [2,4], ['monkey', [3,4,5,6,7]]],
        [[5,1], [1,2], [3,3], [4,4]], 
        [[2,1], [4,2], [6,3], [3,4]]
]