gpt4 book ai didi

javascript - 使用递归遍历数组数组

转载 作者:行者123 更新时间:2023-11-30 13:46:56 26 4
gpt4 key购买 nike

我试图用递归来解决这个问题,因为我想让我的生活变得更糟。我正在获取一组数组并返回一个包含所有值的数组。它非常接近工作,但我插入的新数组在每次递归后不断重置。我能得到一些建议吗?

var myArray = [[1, 2],[3, 4, 5], [6, 7, 8, 9]]

const flatten = function (arr) {
let output = [];

arr.map(element => {
if (Array.isArray(element)) {
console.log('Is Array ---> ', element)
flatten(element);
} else {
console.log('Output ----->', output)
console.log('Else --->', element)
output.push(element);
}

});

return output;

};

console.log('Retrun ----->', flatten(myArray)); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

最佳答案

您应该使用 spread syntax 推送调用 flatten(element) 的结果:

output.push(...flatten(element));

注意:您还应该用 Array.forEach() 替换 map 调用,因为您不使用返回的数组。

示例:

const flatten = function(arr) {
const output = [];

arr.forEach(element => {
if (Array.isArray(element)) {
output.push(...flatten(element));
} else {
output.push(element);
}

});

return output;

};

var myArray = [[1, 2],[3, 4, 5], [6, 7, 8, 9]]


console.log(flatten(myArray)); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

关于javascript - 使用递归遍历数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com