首页 > 解决方案 > 从变量(从导入的 JS)中获取字符串作为对象中的键

问题描述

如何使变量成为对象的关键?

我正在从 definitions.js 导入常量,这些常量需要用作键:

import * as cons from '../scripts/definitions.js'

export default {
  data () {
    return {
      cons: cons,
      obj: {
        cons.FILENAMEA: {},
        cons.FILENAMEB: {
          children: [
            cons.CHILDFILENAME1,
            cons.CHILDFILENAME2,
            cons.CHILDFILENAME3
          ]
        }
      }
    }
  },

使用上面的代码,我收到错误:

Parsing error: Unexpected token, expected ","

因为 . 中的点 (. cons.FILENAMEA) 这该怎么做??请注意,我需要从外部文件中获取这些变量/常量。不可能只在同一个文件上声明它。

谢谢!

标签: javascriptnode.jsjsonvue.jsobject

解决方案


您可以使用 es6计算属性

obj: {
  [cons.FILENAMEA]: {},
  [cons.FILENAMEB]: {
    children: [
      cons.CHILDFILENAME1,
      cons.CHILDFILENAME2,
      cons.CHILDFILENAME3
    ]
  }
}

括号内的表达式将被评估并用作属性名称


推荐阅读