我有一个具有很多属性的对象,但我只想更新其中的三个 到目前为止,我正在更新:
local.primary = (local.primary).toFixed(3)
local.second = local.second.toFixed(3)
local.last =local.last.toFixed(3)
有没有更好的方法?
答案 0 :(得分:2)
如果您想保持 DRY,您可以使用 Object.fromEntries
并映射要更改的属性数组:
Object.assign(
local,
Object.fromEntries(
['primary', 'second', 'last'].map(
prop => [prop, local[prop].toFixed(3)]
)
)
);
如果你真的想传播,我想如果重新分配对象或创建一个新对象是可以的,我想你可以做到:
const newObj = {
...local,
...Object.fromEntries(
['primary', 'second', 'last'].map(
prop => [prop, local[prop].toFixed(3)]
)
)
};
但如果只有 3 个属性,我认为单独列出它们一点也不坏:
Object.assign(
local,
{
primary: local.primary.toFixed(3),
second: local.second.toFixed(3),
last: local.last.toFixed(3),
}
);
不清楚整个数据结构是什么,但 primary
、second
和 last
作为它们自己的独立属性对象或数组可能会更好。