0
我讀Ruby的數組扁平化功能,尋找在Javascript中類似的功能,並沒有發現。所以,我自己創造了它。如何創建一個用於拼合數組的函數?多維數組一個維數組在Javascript
Input: [[1,2,[3]],4]
Output : [1,2,3,4]
如果你想使用reduce/concate方法,你將無法獲得多維數組所需的答案。
什麼可以成爲解決方案的代碼,你覺得呢?!
我讀Ruby的數組扁平化功能,尋找在Javascript中類似的功能,並沒有發現。所以,我自己創造了它。如何創建一個用於拼合數組的函數?多維數組一個維數組在Javascript
Input: [[1,2,[3]],4]
Output : [1,2,3,4]
如果你想使用reduce/concate方法,你將無法獲得多維數組所需的答案。
什麼可以成爲解決方案的代碼,你覺得呢?!
所以,這裏是我用來解決解決方案的代碼。
var givenArr = [[1,2,[3]],4];
var outputArray = [];
function typeOf(value) {
var s = typeof value;
if (s === 'object') {
if (value)
{
if (Object.prototype.toString.call(value) == '[object Array]') {
s = 'array';
}
}else{
s = 'null';
}
}
return s;
}
function getElementFromArray(array)
{
if(array.length == 0) return;
for(var i = 0; i< array.length; i++)
{
if(typeOf(array[i]) === 'array')
{
getElementFromArray(array[i]);
}else{
outputArray.push(array[i]);
}
}
}//end getElementFromArray
getElementFromArray(givenArr);
console.log(outputArray);
//output [1,2,3,4]
@AndrewMorton看起來很相似,但是對於嵌套的多維數組,解決方案不起作用。如果你爲這個給定的數組嘗試這個解決方案,你會看到:[1,2,[3],4]。但是我想[1,2,3,4] 所以,這並沒有解決我的問題,我寫了這個解決方案 – dmsbilas
如果所有的數字都是可以做的'newArr = arr.toString()分裂(「」)。地圖(數字)' – charlietfl
@dmsbilas掛線是一個漫長的,但[這個答案](http://stackoverflow.com/a/15030117/13)是一個你需要的。 –