繁体   English   中英

如何将枚举转换为打字稿中的键,值数组?

[英]How to convert enum into a key,value array in typescript?

var enums = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
  };

我希望能够将其转换为如下所示的数组,

[
  {
    number:'1',
    word:'HELLO'
  },
  {
    number:'2',
    word:'BYE'
  },
  {
    number:'3',
    word:'TATA'
  }
]

我看到的所有解决方案都由键或值组成的数组。

您可以使用Object.entries并将其映射为所需的格式

 var enums = { '1': 'HELLO', '2' : 'BYE', '3' : 'TATA' }; let op = Object.entries(enums).map(([key, value]) => ({ number:key, word:value })) console.log(op) 

您可以使用短手属性映射条目。

 var enums = { 1: 'HELLO', 2: 'BYE', 3: 'TATA' }, objects = Object.entries(enums).map(([number, word]) => ({ number, word })); console.log(objects); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以将Object.entries()与foreach一起使用,并将其推送到这样的数组中

 var enums = { '1': 'HELLO', '2' : 'BYE', '3' : 'TATA' }; var enumArray = [] Object.entries(enums).forEach(([key, value]) => enumArray.push({number : key, word : value})); console.log(enumArray); 

需要创建一个Map类型的对象,然后使用诸如outData.get(“ 1”)之类的get方法获取值

var obj = {
    '1': 'HELLO',
    '2': 'BYE',
    '3': 'TATA'
};
var outData = new Map();
Object.keys(obj).forEach(function (e) {
    outData.set(e, obj[e])
});

要获取数据,请使用outData.get(“ key”)

现在,输出数据将像-

Map(3) {"1" => "HELLO", "2" => "BYE", "3" => "TATA"}

另一种选择是使用for ... in循环迭代enums键并构造所需的对象数组。

 var enums = { '1': 'HELLO', '2' : 'BYE', '3' : 'TATA' }; let res = []; for (key in enums) { res.push({number: key, word: enums[key]}); } console.log(res); 
 .as-console {background-color:black !important; color:lime;} .as-console-wrapper {max-height:100% !important; top:0;} 

您可以使用Object.keys和地图

 var obj = { '1': 'HELLO', '2' : 'BYE', '3' : 'TATA' }; const result = Object.keys(obj).map(el => { return { number: el, word: obj[el] } }) console.log(result) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM