使用模型将对象变量数组转换为枚举

问题描述 投票:-2回答:2

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

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

我想创建一个模型并将其注入我的组件..我能做到的最好的方法是什么?

javascript angular typescript object enums
2个回答
0
投票

你有望出口和进口吗?如果是,例如你想将colors放在a.ts文件中并将其带入b.ts

然后你可以用a.ts写

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

b.ts

import { colors } from 'a'

然后你可以在b.ts的任何地方使用它

对不起,如果这不是你想要的


0
投票

JS中不存在枚举。

在TS中,它们被转换为对象。

使用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);
© www.soinside.com 2019 - 2024. All rights reserved.