首次發佈。抱歉格式不正確。我試圖讓我的功能工作。目前的問題是遞歸函數在第一個數組元素被調用時會立即停止。即使在調用數組後,我仍然需要它繼續前進。我想將數組展平。修復使用包含其他數組的元素的數組的遞歸函數。它生成一個沒有其他數組作爲元素的數組
function steamrollArray(arr) {
var newArr=[];
//return Array.isArray(arr[2]);
//takes an array of which some elements will also be arrays and pushes its non-array elements to a new array (newArr)
function recurseArr(a){
for (i=0; i<a.length; i++){
//recursion where you take the array element (also an array) and apply the same function until you get an element
if(Array.isArray(a[i])){
//&& i==a.length
recurseArr(a[i]);
}
//case where the original array element is not an array but an element already
else{
newArr.push(a[i]);
}
}
}
//end of recurseArr
recurseArr(arr);
return newArr;
}
steamrollArray([1, 2, [2, 3], 2, [[[4]]]]);
期望的輸出:[1,2,2,3,2,4]
是你的意圖扁平化陣列?即要求的輸出是:[1,2,3,2,4]? – jgr0
您可以請您發佈您想要的最終期望輸出。 – sailesh
你必須停止在你的代碼元素之間放置這麼多行。您還需要使用一致的格式和縮進。不要混合標籤和空格。在stackoverflow上空間效果最好。沒有人可以看到你的代碼在做什麼,否則。 – ErikE