gpt4 book ai didi

javascript + 根据键组合 json 数组,

转载 作者:太空宇宙 更新时间:2023-11-04 03:28:18 25 4
gpt4 key购买 nike

我正在尝试将两个 json 合并为一个 json。我不想合并所有键,我添加了我的代码。代码应使用 JavaScript 或 Node(下划线)。

var json1 = [{user_id:1,friend_id:2,desc:'aaa'}, {user_id:3,friend_id:4,desc:'ccc'}, {user_id:1,friend_id:1,desc:'ccc'} , {user_id:1,friend_id:3,desc:'ccc'} ];


var json2 = [{reference_id:1,name:'A'},{reference_id:2,name:'B'},{reference_id:3,name:'C',age:30},{reference_id:4,name:'D'}];

预期输出:

输出:

json1 = [{user_id:1,friend_id:2,desc:'aaa',user_name:'A',friend_name:'B'}, {user_id:3,friend_id:4,desc:'ccc',user_name:'C',friend_name:'D'}, {user_id:1,friend_id:1,desc:'ccc',user_name:'A',friend_name:'A'} , {user_id:1,friend_id:3,desc:'ccc',user_name:'A',friend_name:'C'} ];

逻辑Js代码:

for (var i = 0; i < json1.length; i++) {
var user_id = json1[i].user_id;
var friend_id = json1[i].friend_id;
for (var j = 0; j < json2.length; j++) {
if (json2[j].reference_id == user_id) {
json1[i].user_name = json2[j].name;
}
if (json2[j].reference_id == friend_id) {
json1[i].friend_name = json2[j].name;
}
}
}

我在 jsfiddle 中附加了我的代码。 Click Here

相同的代码应转换为下划线。

最佳答案

你在这里重复一些努力。 json2.length 是否很小并不重要;但如果它很大,你将付出代价:每次查看 json1 的元素时,你都会循环遍历 json2 的每个元素。因此,请这样想:

var personMap = {};
json2.forEach(function(item) {
personMap[item.reference_id] = item.name;
});

json1.forEach(function(item) {
item.user_name = personMap[item.user_id];
item.friend_name = personMap[item.friend_id];
});

关于javascript + 根据键组合 json 数组,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41605492/

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