首次发布。抱歉格式不正确。我试图让我的功能工作。目前的问题是递归函数在第一个数组元素被调用时会立即停止。即使在调用数组后,我仍然需要它继续前进。我想将数组展平。修复使用包含其他数组的元素的数组的递归函数。它生成一个没有其他数组作为元素的数组
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