【发布时间】:2019-02-12 04:39:13
【问题描述】:
因此,我正在努力解决递归问题,最近遇到了一个问题,无论如何使用递归最容易解决。我正在尝试展平一系列不同深度的数组,我想出的功能是:
mixedArray = [1, 2, [3, 4], [[5, 6], 7], 8, 9];
function flattenArray(array) {
return array.map(val => {
if (typeof val !== "number") {
return flattenArray(val);
} else {
return val;
}
});
}
console.log(flattenArray(mixedArray));
现在,我希望它输出 [1,2,3,4,5,6,7,8,9] 但它只是按原样返回混合数组。我的想法是它需要数组,并且(假设数组不仅仅是一个数字)映射到条目。如果一个条目是单个数字,那么它应该返回那个数字,如果不是,那么它应该调用这个条目的原始函数,依此类推。希望这是一个相当基本的东西,比如语法错误(这将是相当典型的!!)
请注意;我想知道为什么我的功能不能像寻找解决方案那样工作。
谢谢(提前)
【问题讨论】:
标签: javascript arrays recursion