gpt4 book ai didi

javascript - 基于字符串值的嵌套分组 Angular 6

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

假设我有一个字符串数组,其值类似于 -

animal
animal.mammal
animal.bird
animal.reptile
animal.mammal.human
animal.mammal.horse
animal.bird.crow
animal.reptile.snake

当我必须显示这个数组时,我想像这样显示它 -

-animal
-animal.mammal
-animal.mammal.human
-animal.mammal.horse
-animal.bird
-animal.bird.crow
-animal.reptile
-animal.reptile.snake

我的方法应该是什么?我应该使用分组依据或过滤器还是什么?我正在使用 Angular 6 和 Material UI。

最佳答案

我已经有了你需要的东西:

const groups = arr => {
const res = [];
arr.forEach(v => {
let current = res
const splits = v.split('.');
splits.forEach(s => {
if (current[s] === undefined) {
current[s] = [];
}
current = current[s];
});
current.push(v);
}
return res;

groups(yourArrayHere);

输入:

const arr = ['animal', 'animal.mammal', 'animal.mammal.human'];

输出:

[
'animal': [
0: 'animal',
'animal.mammal': [
0: 'animal.mammal.human'
]
]
]

编辑:

你也可以使用reduce语句,效果也很好:)

const groups = arr => {
return arr.reduce((acc, v) => {
let current = acc
v.split('.').forEach(s => {
if (current[s] === undefined) {
current[s] = [];
}
current = current[s];
});
current.push(v);
return acc;
}, []);
};

groups(theArray);

关于javascript - 基于字符串值的嵌套分组 Angular 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54343204/

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