gpt4 book ai didi

javascript - 更简洁的方式来转换JS对象?

转载 作者:行者123 更新时间:2023-11-28 13:03:03 25 4
gpt4 key购买 nike

请参阅下面的代码。有没有更简洁的方法将 originalObject 转换为 myObject?关键是我试图根据 originalObject 中每个属性中的 id 设置 myObject 的属性名称。

myObject = Object
.values( originalObject )
.reduce( (acc, x) => {
let propHolder = {}
propHolder[x.id] = false
return Object.assign( acc, propHolder )
}, {} )

最佳答案

既然你有了let,你就拥有了计算属性:

myObject = Object.values(originalObject).reduce((acc, x)=>{
return Object.assign(acc, {[x.id]: false})
},{})

现在,由于箭头函数只是一个返回:

myObject =
Object.values(originalObject)
.reduce((acc, x) => Object.assign(acc, {[x.id]: false}), {})

如果你不介意创建一个数组:

myObject =
Object.values(originalObject)
.map(x => ({[x.id]: false}))
.reduce(Object.assign, {});

不过,我更希望手头有一个 fromPairs 函数。

myObject = fromPairs(
Object.values(originalObject)
.map(x => [x.id, false])
);

如果您使用Lodash的fromPairs,您也可以使用它的map

myObject = _.fromPairs(
_.map(originalObject, x => [x.id, false])
);

关于javascript - 更简洁的方式来转换JS对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48959932/

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