我试图在保留顺序的同时展平嵌套数组,例如[[1, 2], 3, [4, [[5]]]]应该转换为[1, 2, 3, 4, 5].
我正在尝试使用递归来执行此操作,但下面的代码不起作用,我不明白为什么.我知道还有其他方法可以做到这一点,但我想知道这有什么问题.
function flatten (arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
flatten(arr);
} else {
newArr.push(arr[i]);
}
}
return newArr;
}
flatten([[1, 2], 3, [4, [[5]]]]);
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在尝试在Codecademy中学习JavaScript,其中一个简单的提到是"for in"循环.我在一些练习中使用过它们,但在这种情况下,我无法让它工作.我可以用(i =等等;等等),但我想知道这有什么问题,如果有办法解决它:
//Your three dimensional array from the last exercise probably
//looked something like this:
var hands = [];
hands[0] = [ [3,"H"], ["A","S"], [1,"D"], ["J","H"], ["Q","D"] ];
hands[1] = [ [9,"C"], [6,"C"], ["K","H"], [3,"C"], ["K","H"] ];
//Loop over every dimension in the array, logging out the suit and rank
//of each card in both hands
//1. loop over each hand
for (var hand in hands) {
//2. loop over each card array in each hand
for (var card …Run Code Online (Sandbox Code Playgroud)