gpt4 book ai didi

arrays - 通过匹配 Nodejs 中的属性来合并 JSON 数组

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:55 24 4
gpt4 key购买 nike

我在 Node.js 中有两个 JSON 数组。

var a = [{id: 1, 名称: 'A'}, {id: 2, 名称: 'B'}, {id: 3, 名称: 'C'}, {id: 4 ,名称:'D'}];

var b = [{id: 1, 标记: 80}, {id: 2, 标记: 30}, {id: 3, 标记: 76}];

我想合并这些数组,匹配 id 值。请建议一种有效的方法来执行此操作,因为数组包含大约 25000 记录。

期望的输出:

var o = [{id: 1, 名称: 'A', 标记: 80}, {id: 2, 名称: 'B', 标记: 30}, {id: 3, 名称: ' C',分数:76},{id:4,名称:'D'}];

谢谢。

最佳答案

你应该创建一个索引对象

const indexB = b.reduce( ( result, item ) => { 
result[item.id] = item;
return result;
}, {});

var mergedArr = a.map( item => Object.assign( item, indexB[item.id] ) );

在我的基准测试中,下划线方法和我的方法有显着差异:

λ ~/Projects/_tests/performance ◆ time node a.js
node a.js 44.36s user 0.38s system 98% cpu 45.216 total
λ ~/Projects/_tests/performance ◆ time node b.js
node b.js 0.10s user 0.02s system 95% cpu 0.118 total

其中 a.js 带有下划线。

关于arrays - 通过匹配 Nodejs 中的属性来合并 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844558/

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