【问题标题】:convert array of objects variable to enum using model使用模型将对象变量数组转换为枚举
【发布时间】:2019-02-13 10:13:00
【问题描述】:

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

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

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

【问题讨论】:

  • “创建模型”是什么意思? “注入”它?
  • 我的意思是在文件中声明一个枚举,并在我的组件中使用它
  • import吧。

标签: javascript angular typescript object enums


【解决方案1】:

您是否希望导出和导入它?如果是,例如您想将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的任何地方使用它了

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

【讨论】:

    【解决方案2】:

    枚举在 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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2012-08-12
      • 2021-08-27
      • 2019-03-04
      • 1970-01-01
      • 2011-05-08
      • 2011-07-02
      • 2010-10-11
      相关资源
      最近更新 更多