gpt4 book ai didi

javascript - 合并两个对象以获得与第一个对象具有相同结构的另一个对象

转载 作者:行者123 更新时间:2023-12-01 15:39:47 24 4
gpt4 key购买 nike

我需要一些数据结构的帮助。
我有这些对象:

const infos = {
columnA: {color: 'red', name: 'Column Ancient' },
columnB: {color: 'yellow', name: 'Column Blue' },
columnC: {color: 'green', name: 'Column Consequence' },
}

const datum = { id: 0, columnA: 5, columnB: 100, columnC: 33 }
我想要另一个像这样的对象( infosWithValues ):
const infosWithValues = {
columnA: {color: 'red', name: 'Column Ancient', value: 5 },
columnB: {color: 'yellow', name: 'Column Blue', value: 100 },
columnC: {color: 'green', name: 'Column Consequence', value: 33 },
}
这是我尝试过的:
const infosWithValues = [
...Object.entries(infos).map(([columnName, info]) => ({
[columnName]: { ...info, value: datum[columnName] },
})),
]
但我得到:
[
{ columnA: {color: 'red', name: 'Column Ancient', value: 5 } },
{ columnB: {color: 'yellow', name: 'Column Blue', value: 100 } },
{ columnC: {color: 'green', name: 'Column Consequence', value: 33 } },
]

最佳答案

你几乎做对了,你需要的是reduce而不是 map .

const infos = {
columnA: {color: 'red', name: 'Column Ancient' },
columnB: {color: 'yellow', name: 'Column Blue' },
columnC: {color: 'green', name: 'Column Consequence' },
}

const datum = { id: 0, columnA: 5, columnB: 100, columnC: 33 }

const infosWithValues = Object.entries(infos).reduce((obj,[columnName, info]) => {
obj[columnName] = { ...info, value: datum[columnName] };
return obj;
}, {})

console.log(infosWithValues)

关于javascript - 合并两个对象以获得与第一个对象具有相同结构的另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63052157/

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