gpt4 book ai didi

javascript - 使用 lodash 对子值进行递归分组

转载 作者:行者123 更新时间:2023-11-28 14:48:30 33 4
gpt4 key购买 nike

我处理一些复杂的数据对象,我需要动态地将一些数据从子级映射到父级,递归直到顶层。抛开细节不谈,我正在执行以下操作。在最低级别的 child 和他们的直接 parent 之间,然后递归地应用于 parent :给定 child 的数据数组......

 [ 
[
['key 1', 1],
['key 2', null],
['key 3', 42]
],
[
['key 1', null],
['key 2', 42],
['key 3', 0]
],
[
['key 1', 21],
['key 2', 21],
['key 3', 21]
],
]

...我试图让父数据看起来像这样:

[
[
'key 1', [1, null, 21]
],
[
'key 2', [null, 42, 21]
],
[
'key 3', [42, 0, 21]
]
]

最有可能的是,我可以使用 good'ol for 来实现这一点,但我很确定有一种巧妙的方法可以使用 _.groupBy, _.chain_.thru。我仍在与 _ 作斗争。

有点像放弃,在这里问,但我已经花了一天多的时间,试图找到类似的东西并阅读lodash的ArrayCollection 运行没有任何结果。

如果你想在 jsFiddle 上测试它,我在这个 fiddle 中提取了一小段实时数据进行测试。 .

最佳答案

您可以展平,然后按第一个索引进行分组,并将这些组映射到预期结果。

var data = [[["key 1",1],["key 2",null],["key 3",42]],[["key 1",null],["key 2",42],["key 3",0]],[["key 1",21],["key 2",21],["key 3",21]]];

var result = _(data)
.flatten()
.groupBy(_.head)
.map(function(v, k) {
return [k, _.map(v, _.last)];
})
.value();

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - 使用 lodash 对子值进行递归分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45485310/

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