gpt4 book ai didi

javascript - 将一个 json 对象注入(inject)/复制到另一个 json 对象中以扩展它们

转载 作者:行者123 更新时间:2023-12-03 04:01:59 25 4
gpt4 key购买 nike

如何使用 javascript/nodejs 执行以下操作:

注入(inject)json结果A(只有一个json对象)

[{
"user": "userA",
"group": "groupA"
}]

转换为json结果B(具有相同结构的多个json对象)

[{
"picture": "picA",
"city": "cityA",
"year": "2016"
},
{
"picture": "picB",
"city": "cityB",
"year": "2017"
}]

将 A 注入(inject) B 后创建以下所需的 json 对象 C

[{
"user": "userA",
"group": "groupA",
"picture": "picA",
"city": "cityA",
"year": "2016"
},
{
"user": "userA",
"group": "groupA",
"picture": "picB",
"city": "cityB",
"year": "2017"
}]

我需要合并两个 json 结果。但对象 A 应该复制到所有 B 对象中以扩展它们。

最佳答案

由于您只有基元,因此如果存在重复的属性名称,以下内容将合并属性而不覆盖:

let toBeCopied = [{
"user": "userA",
"group": "groupA"
}];

let result = [{
"picture": "picA",
"city": "cityA",
"year": "2016"
},
{
"picture": "picB",
"city": "cityB",
"year": "2017"
}];

let merged = result.map(r => Object.assign({}, toBeCopied[0], r));

如果您想覆盖旧数组的元素(而不是创建新数组),请执行以下操作:

for (let i = 0; i < result.length; i++) {
result[i] = Object.assign({}, toBeCopied[0], result[i]);
}

但是,如果将来任何属性都是对象,请记住只会复制对象引用(不会深度克隆)。

关于javascript - 将一个 json 对象注入(inject)/复制到另一个 json 对象中以扩展它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683251/

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