gpt4 book ai didi

javascript - 递归展开嵌套数组

转载 作者:行者123 更新时间:2023-11-30 08:24:15 25 4
gpt4 key购买 nike

但是,我试图在函数中递归地解包嵌套数组;除了在要存储的函数之外创建一个新的空数组之外,我想不出其他方法。有没有一种方法可以递归地展开嵌套数组,同时在函数中保留一个新的空数组?

var test = [1,2,33,[55,88,[23,[211],66,998],2000],4,2002,[111,58,22,[120],15],68];

var newArray =[];

function nestedArray(arr) {


arr = arr.forEach(function(item,index){
if(Array.isArray(item)){
return nestedArray(item);
}else{

newArray.push(item)
}
})
return newArray
}

nestedArray(test)

最佳答案

从 IIFE(立即调用的函数表达式)返回您的函数,并将 newArray 放入其中。 “IIFE”创建一个“闭包”或“范围”,newArray 和构建它的函数都可以驻留在其中:

var test = [1,2,33,[55,88,[23,[211],66,998],2000],4,2002,[111,58,22,[120],15],68];

var nestedArray = (function() {
var newArray = [];

return function(arr) {
arr = arr.forEach(function(item,index){
if(Array.isArray(item)){
return nestedArray(item);
}else{
newArray.push(item)
}
})
return newArray;
}
})();

console.log( nestedArray(test) );

关于javascript - 递归展开嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236064/

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