Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript将对象映射到其他结构_Javascript_Typescript_Dictionary - Fatal编程技术网

Javascript Typescript将对象映射到其他结构

Javascript Typescript将对象映射到其他结构,javascript,typescript,dictionary,Javascript,Typescript,Dictionary,我有一个混凝土结构的物体。我想创建另一个,具有其他结构…类似于.map() 我想将其映射到其他对象结构: const Object2: Type2 = { :D: { iconClass: 'emoticon-3', name: 'Laughing :D', }, :O: { iconClass: 'emoticon-4', name: "Surprise, No you di'int' :O", } ....... } 您可以使用和。用于将

我有一个混凝土结构的物体。我想创建另一个,具有其他结构…类似于.map()

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

const Object2: Type2 = {
  :D: {
    iconClass: 'emoticon-3',
    name: 'Laughing :D',
  },
  :O: {
    iconClass: 'emoticon-4',
    name: "Surprise, No you di'int' :O",
  }
  .......
}
您可以使用和。用于将
dataText
作为单独的变量获取,并将剩余的属性获取为
rest
变量,如下所示:
{dataText,…rest}

const obj={
大笑:{
iconClass:“表情符号-3”,
名字:“笑:D”,
dataText:':D',
},
惊喜:{
iconClass:“表情符号-4”,
姓名:“惊喜,不,你不知道”:O“,
dataText:':O',
}
}
const newObj=Object.values(obj).reduce((acc,{dataText,…rest})=>{
acc[dataText]=rest;
返回acc
}, {})
console.log(newObj)
您可以使用和。用于将
dataText
作为单独的变量获取,并将剩余的属性获取为
rest
变量,如下所示:
{dataText,…rest}

const obj={
大笑:{
iconClass:“表情符号-3”,
名字:“笑:D”,
dataText:':D',
},
惊喜:{
iconClass:“表情符号-4”,
姓名:“惊喜,不,你不知道”:O“,
dataText:':O',
}
}
const newObj=Object.values(obj).reduce((acc,{dataText,…rest})=>{
acc[dataText]=rest;
返回acc
}, {})
console.log(newObj)
您可以使用
array#map
创建对象数组,然后使用
object.assign()
创建单个对象

const obj={Laughing:{iconClass:'emoticon-3',name:'Laughing:D',dataText:':D',},惊奇:{iconClass:'emoticon-4',name:'saughing,No you di'int':O',dataText:':O',},
结果=Object.assign(…Object.values(obj.map)({dataText,…o})=>({[dataText]:o}));
控制台日志(结果)
您可以使用
array#map
创建对象数组,然后使用
object.assign()
创建单个对象

const obj={Laughing:{iconClass:'emoticon-3',name:'Laughing:D',dataText:':D',},惊奇:{iconClass:'emoticon-4',name:'saughing,No you di'int':O',dataText:':O',},
结果=Object.assign(…Object.values(obj.map)({dataText,…o})=>({[dataText]:o}));

控制台日志(结果)您可以使用隐式返回({…acc[dataText]:rest})来缩短正文@jo_va您是对的。我已经在答案中添加了这一点。您可以使用隐式返回({…acc[dataText]:rest})@jo_va缩短正文,您是对的。我在回答中加了这个。你在陈述一个要求。请尝试添加您尝试过的内容以及您在数据转换方面面临的问题。您正在陈述一项要求。还请尝试添加您尝试过的内容以及您在数据转换方面面临的问题。
const Object2: Type2 = {
  :D: {
    iconClass: 'emoticon-3',
    name: 'Laughing :D',
  },
  :O: {
    iconClass: 'emoticon-4',
    name: "Surprise, No you di'int' :O",
  }
  .......
}