gpt4 book ai didi

javascript - 合并两个不同形状的数据结构

转载 作者:行者123 更新时间:2023-11-28 01:09:30 24 4
gpt4 key购买 nike

我有两个具有不同形状的数据结构,它们来自两个不同的 API。数据为JSON格式,语言为JavaScript。

数组1:

[ { "document" : { "html" : "some_html", "name" : "DOCUMENT_NAME_1" },
"tooltips" : [ { "html" : "some_html", "name" : "TASK_NAME_1" },
{ "html" : "some_html", "name" : "TASK_NAME_2" } ] },
{ "document" : { "html" : "some_html", "name" : "DOCUMENT_NAME_2" },
"tooltips" : [ { "html" : "some_html", "name" : "TASK_NAME_3" },
{ "html" : "some_html", "name" : "TASK_NAME_4" } ] }]

数组2:

  [ [ { "name" : "TASK_NAME_1", "status" : "FINISHED" }, 
{ "name" : "TASK_NAME_2", "status" : "OPEN" } ],
[ { "name" : "TASK_NAME_3", "status" : "OPEN" },
{ "name" : "TASK_NAME_4", "status" : "FUTURE" } ] ]

数组 1 中的工具提示字段的元素包含与数组 2 的元素相同的“名称”。如何优雅地将数组 2 中的“状态”合并到数组 1 中的工具提示中?

我认为镜头可能是正确的答案,但我不确定,因为我从未使用过它们。

我知道可以使用嵌套迭代和更新数组 1 来解决这个问题。理想情况下,我正在寻找一种不修改现有数据结构的方法。

最佳答案

这有点复杂,但应该适合您

array2.forEach(function(tooltips){
tooltips.forEach(function(tooltip){
for (var i = 0; i < array1.length; i++) {
for (var j = 0; j < array1[i].tooltips.length; j++) {
var arr1Tooltip = array1[i].tooltips[j];
if(arr1Tooltip.name == tooltip.name)
arr1Tooltip.status = tooltip.status;
};
};
});
});

console.log(JSON.stringify(array1));

关于javascript - 合并两个不同形状的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24651885/

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