我正在寻找一种在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):
[
[[1,2], [2,4], [3,6], [4,3]],
[[1,5], [2,1], [3,3], [4,4]],
[[1,4], [2,7], [3,1], [4,2], [[3,4,5,6,7], 'monkey']]
]
目前,我已根据我的需要编写了这个简短的原型:
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;
};
像这样使用它:
aMultiDim.reverseAtLevel(2)
这是正确的方法吗?
编辑: 我不想要&#34;直接&#34; .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]]
]