我对递归是新手。我可以将数组展平并以普通数组的形式返回,但如果我想将数组展平并将其存储在对象中并返回值,由于某种原因,我会丢失前面结果的值,如果你能帮助我,那就太好了。PS:我可以通过每次迭代发送结果作为参数来做到这一点,但我想这样做,所以…
const flatten = (nums) => {
result = {
number: [],
};
console.log(result);
for (let num of nums) {
if (Array.isArray(num)) {
result = {
...result,
...flatten(num),
};
} else if (typeof num === "number") {
result = { ...result, number: [...result.number, num] };
}
}
return result;
};
console.log(flatten([[1, 2], [3, [6, [1, 2, 3]], [4, [5]]], [1]]));
我甚至尝试了下面的方法,我知道我犯了一些错误,只是我找不到确切的位置
const flatten = (nums) => {
return nums.reduce(
(acc, ele) => {
if (Array.isArray(ele)) {
acc = { ...acc, num: [...flatten(ele)] };
} else {
acc = { ...acc, num: [...acc.num, ele] };
}
return acc;
},
{ num: [] }
);
};
result={
number:[1,2,3,6,1,2,3,4,5,1]
}
或
{
number:[1,2,3,6,1,2,3,4,5,1]
}
您还可以使用带有递归的Array.Reduce()方法来完成此操作。
const items = [1, 2, 3, [5, 5], [[8, 9]], [99], 125];
function flatArray(items) {
return items.reduce((arrayData, element) => {
if (Array.isArray(element)) {
arrayData = [...arrayData, ...flatArray(element)];
} else {
arrayData = [...arrayData, element];
}
return arrayData;
}, []);
};
console.log(flatArray(items));
// [1, 2, 3, 5, 5, 8, 9, 99, 125]
const result = {
number: flatArray(items),
};
背景: 需要将扁平化数组转换成树形数组。 比如原始数组如下: 期望转换后的数据
我有以下熊猫系列 我需要将此更正为csv。但我需要列表中的每个项目作为单独的列。例如:在第一行中,1、11283、1、5应该是单独的列
如我们所知,要使用方法对数组进行展平 那么如何将这个数组平坦化为呢?
我想创建一个数组,使其包含一些标识名,并且对于这些名称中的每一个,都有另一个关联的数组。我的做法是,, 执行此操作后,我得到如下结果:, 下次调用此函数时,我需要检查1-1是否存在,如果存在,我需要获取与1-1相关的列表。我该怎么做。。?如果1-1不在myArray中,我将调用其他函数。
本文向大家介绍Python分组扁平化列表,包括了Python分组扁平化列表的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,将包含子列表的列表展开。给定的数字将子列表展开,直到给定的数字索引作为部分。让我们看一个例子来清楚地理解它。 输入项 输出结果 让我们看看解决问题的步骤。 初始化列表和编号。 初始化一个空列表。 使用范围(0,len(lists),number遍历列表
本文向大家介绍JS数组扁平化、去重、排序操作实例详解,包括了JS数组扁平化、去重、排序操作实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS数组扁平化、去重、排序操作。分享给大家供大家参考,具体如下: 在网上看到一个校招题目,已知一个数组var arr = [[1, 3, 2, 1],[5, 3, 4, 8, 5, 6, 5],[6, 2, 8, 9, [4, 11, 15, 8