gpt4 book ai didi

javascript - 如何从数组及其子数组中获取所有值

转载 作者:行者123 更新时间:2023-11-29 14:40:16 25 4
gpt4 key购买 nike

<分区>

我正在尝试构建一个将应用于数组的函数,并将提取其所有不是数组的值。

对于数组,它会再次执行相同的过程,直到第一个数组、它的子数组、子数组自己的子数组等的所有值都被放入一个数组.

我面临的问题在于我事先不知道每个数组将有多少个子数组等等。

我尝试过的:

我已经尝试使用 forEach() 如下所示,但正如我在上面所说的那样,子数组的数量和一般值事先是未知的。我确信某种循环甚至递归会有所帮助,但我无法让它在我的脑海中发挥作用。

function extract (value) {    
var
result = [],
isArray = function (value) {
return value.constructor === Array;
}

if (isArray(value)) {
value.forEach(function (each) {
if (!isArray(each)) result.push(each);
else {
each.forEach(function (j) {
if (!isArray(each)) result.push(each);
else... // same as above
});
}
});
}

return result;
}

我相信使用 each = each[i] 就像我在 DOM 中寻找后代一样会有所帮助,但我不确定如何设置本例中的 while 循环以及终止条件应该是什么。

期望的结果:

var array = [["a", 2, [3, "mn"], "bu"], "la", [12, 34, "ab"]]; // Just an example
var result = extract(array); // Outputs: ["a", 2, 3, "mn", "bu", "la", 12, 34, "ab"]

如何修复我当前的代码以实现上述预期结果?

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