【发布时间】:2021-09-14 12:48:19
【问题描述】:
我正在尝试使用下面的 json 对象数组创建一棵树。我想将一个类别设置为另一个类别的子类别,如果它的 sub_category_1 并且我希望 sub_category_2 也成为该 sub_category_1 的子类别
[
{
category: 'CS',
sub_category_1: null,
sub_category_2: null
}, {
category: 'TS',
sub_category_1: null,
sub_category_2: null
}, {
category: 'CS',
sub_category_1: 'Accuracy',
sub_category_2: null
}, {
category: 'CS',
sub_category_1: 'Accuracy',
sub_category_2: 'Members Accuracy'
}
]
我尝试链接诸如 groupBy 和 transform 之类的 lodash 方法,但很难得到我需要的结果格式。
这是我前进方向的骨架:
_(arr).groupBy('category').transform(function(result, obj, type) {
return result.push({
name: type,
children: obj
});
}).value();
预期输出:
[{
category: 'CS',
children: [
{
category: 'Accuracy',
children: [
{
category: 'Members Accuracy'
}
...
]
}
...
]
}, {
category: 'TS'
}]
【问题讨论】:
-
你能举个你想要的例子吗
-
@JagadishLenka “这是我前进方向的骨架:...”
-
必须是lodash? vanilla JS应该有合适的副本
-
你是那个奇怪的 json 的创造者吗??
-
它是由不同的人创建的。这就是为什么我很难使用 lodash 分组和制作树 json 数据
标签: javascript arrays group-by lodash