我需要一些数据结构的帮助。
我有这些对象:
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句