gpt4 book ai didi

javascript - 连接同名的json条目

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

我目前正在尝试学习 javascript 的基础知识并使用 JSON。

我有一个 JSON 文件,我想将同名的导入合并到一个条目中。这怎么可能?

原始 JSON

[{
"name": "1.date.17-Nov-18",
"size": 1000,
"imports": ["1.location.HOUSTON", "1.person.JOHN"]
},
{
"name": "1.date.17-Nov-18",
"size": 1000,
"imports": ["1.location.MIAMI", "1.person.BEN", "1.person.JOHN"]
},
{
"name": "1.date.18-Nov-18",
"size": 1000,
"imports": ["1.location.UBER", "1.person.JOHN"]
}
]

预期输出

[{
"name": "1.date.17-Nov-18",
"size": 1000,
"imports": ["1.location.HOUSTON", "1.person.JOHN", "1.location.MIAMI", "1.person.BEN"]
},
{
"name": "1.date.18-Nov-18",
"size": 1000,
"imports": ["1.location.UBER", "1.person.JOHN"]
}
]

任何提示和建议将不胜感激。非常感谢。

最佳答案

使用对象来跟踪名称,我们使用 forEach 遍历数据数组。

然后我们检查 itemname 之前是否传过。如果已通过,我们将它们的 imports 合并在一起。如果不是,我们将项目添加到对象中。

为了防止重复 imports,我们使用 Set这可以防止重复元素,然后我们使用扩展 ... 运算符将其转换回数组

然后我们使用 Object.values 返回合并后的数据,没有 names 作为键

const result = {};
const data = [{"name":"1.date.17-Nov-18","size":1000,"imports":["1.location.HOUSTON","1.person.JOHN"]},{"name":"1.date.17-Nov-18","size":1000,"imports":["1.location.MIAMI","1.person.BEN","1.person.JOHN"]},{"name":"1.date.18-Nov-18","size":1000,"imports":["1.location.UBER","1.person.JOHN"]}];

data.forEach(item => {
if (item.name in result) result[item.name].imports = [...new Set([...item.imports, ...result[item.name].imports])];
else result[item.name] = item;
});

console.log(Object.values(result));

关于javascript - 连接同名的json条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67031722/

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