gpt4 book ai didi

JavaScript。像 SQL 一样连接 2 组对象的最佳方法?

转载 作者:行者123 更新时间:2023-11-28 04:54:12 24 4
gpt4 key购买 nike

假设我们有 2 组对象

set1 = [{'id':'1', 'x':'1', 'y':'2'}, {'id':'2', 'x':'2', 'y':'2'}]
set2 = [{'id':'1', 'z':'1'}, {'id':'2', 'z':'2'}]

我们想要:

set3 = set1.join(set2).on('id'); 

>> set3
[{'id':'1', 'x':'1', 'y':'2', 'z':'1'},{'id':'2', 'x':'2', 'y':'2', 'z':'2'}]

实现此功能的正确工具是什么?五月underscore在这里帮忙?

最佳答案

选项 1,纯 js

我建议您将每个列表转换为按 id 的集合,例如

{1: {x: 1, y: 1}, 2: {x: 2, y: 2}}

然后对其中一个(或两个)集合运行 a ,并使用这两个集合的属性创建一个新字典 - 后一点取决于您是在寻找内部联接还是外部联接。这应该会产生大致线性的运行时间,字典的 javascript 实现非常高效。

选项 2,下划线,用于密集 id 集,使用 _.zip()

如果 id 相对密集,并且您想要外连接或提前知道 id 集合完全相同,则另一种选择是将数据填充到三个数组中-- 每个属性一个,然后使用下划线的 zip() 方法。

选项 3,下划线,使用 _.groupBy()

另一种可能性是使用自定义比较方法在列表上运行 _.groupBy(),这也将允许连接多个键。不过,需要进行一些简单的后处理,因为直接结果将是形式为

的字典
{1: [{'id':'1', 'x':'1', 'y':'2'}, {'id':'1', 'z':'1'}],
2: [{'id':'2', 'x':'2', 'y':'2'}, {'id':'2', 'z':'2'}]}

后一种情况下的内部联接行为可以通过过滤掉结果字典中那些不具有列表中最大项目数(在示例中为 2)的项目来实现。

关于JavaScript。像 SQL 一样连接 2 组对象的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42679727/

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