首页 > 解决方案 > 使用模型将对象变量数组转换为枚举

问题描述

我想将此变量转换为枚举:

  colors: Array<object> = [
    { name:"bob1", engValue: 'RED' },
    { name:"bob2", engValue: 'GREEN' },
    { name:"bob3", engValue: 'YELLOW' }
  ];

我想创建一个模型并将其注入到我的组件中。我能做到这一点的最佳方法是什么?

标签: javascriptangulartypescriptobjectenums

解决方案


Enums don't exist in JS.

In TS, they're convrted to objects.

use reduce :

const colorsArray = [
    { name:"bob1", engValue: 'RED' },
    { name:"bob2", engValue: 'GREEN' },
    { name:"bob3", engValue: 'YELLOW' }
];

const colorsObject = colorsArray.reduce((p, n) => ({ ...p, [n.name]: n.engValue }), {});

console.log(colorsObject);


推荐阅读