2016-09-25 94 views
-1

我想將此數組轉換爲如下所示的一個數組。我怎樣才能用一種可以工作的方法來實現這一點,而不管數組中的嵌套層次如何。將多嵌套數組轉換爲一個數組

var array = [1, [2], [3, [[4]]]] 
//Output = [1,2,3,4] 
+0

這不是問題的副本。這個問題沒有解決不同程度的嵌套問題。 – mattHunting10

+0

雖然原來的問題沒有問。所以在技術上這不是重複的。 – mattHunting10

+0

請參閱http://stackoverflow.com/a/15030117/1447675 –

回答

2

您可以對此使用遞歸函數。

var array = [1, [2], [3, [[4]]]]; 
 

 
function flatten(ar) { 
 
    var result = []; 
 

 
    ar.forEach(function(e) { 
 
    if (Array.isArray(e)) { 
 
     result = result.concat(flatten(e)); 
 
    } else { 
 
     result.push(e); 
 
    } 
 
    }) 
 

 
    return result; 
 
} 
 

 
console.log(flatten(array));

0

讓它遞歸!

result = []; 

function covert(array) { 
for (var b in array) { 
    if (typeof b === number) { 
     result.push(b) 
    } else { 
     convert(b) 
    } 
} 

}