gpt4 book ai didi

javascript - Typescript 将对象映射到其他结构

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

我有一个具有具体结构的对象。我想创建另一个具有其他结构的...类似于 .map()

const Object: Icon = {
Laughing: {
iconClass: 'emoticon-3',
name: 'Laughing :D',
dataText: ':D',
},
Surprise: {
iconClass: 'emoticon-4',
name: "Surprise, No you di'int' :O",
dataText: ':O',
}
.......
}

我想将它映射到其他对象结构:

const Object2: Type2 = {
:D: {
iconClass: 'emoticon-3',
name: 'Laughing :D',
},
:O: {
iconClass: 'emoticon-4',
name: "Surprise, No you di'int' :O",
}
.......
}

最佳答案

您可以使用Object.values()reduce 。使用destructuringdataText 作为单独的变量并将其余属性获取到 rest 变量,如下所示:{ dataText, ...rest }

const obj = {
Laughing: {
iconClass: 'emoticon-3',
name: 'Laughing :D',
dataText: ':D',
},
Surprise: {
iconClass: 'emoticon-4',
name: "Surprise, No you di'int' :O",
dataText: ':O',
}
}

const newObj = Object.values(obj).reduce((acc, { dataText, ...rest }) => {
acc[dataText] = rest;
return acc
}, {})

console.log(newObj)

正如 @jo_va 所建议的,您也可以从 reduce 隐式返回:

Object.values(obj).reduce((acc, { dataText, ...rest }) => ({ ...acc, [dataText]: rest }), {})

关于javascript - Typescript 将对象映射到其他结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55138033/

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