JavaScript请求对象-将键作为变量转换为字符串

时间:2019-02-26 11:19:05

标签: javascript angular ecmascript-6

我是编程初学者。

API后期调用接受对象变量(从变量派生)为字符串,如下所示

"option": 
    {           
  "235": “30”
},
 {           
    "238": “32”
}

我的代码角度为6

  option = [];
  ---

    this.option.push({
      [option.product_option_id]: $event
    });

结果

 option = [ {
   235: 30
 }]

,但需要将此变量括在双引号“ 235”中。

请帮助

1 个答案:

答案 0 :(得分:4)

  

但需要将此变量用双引号“ 235”

这意味着您需要将其作为 string

不用担心,是的。当您使用数字作为属性名称时,它会自动转换为字符串。属性名称只能是字符串或符号,因此不是字符串或符号的内容将转换为字符串:

class Example {
    constructor() {
        this.option = [];
        const option = {
          product_option_id: 42
        };
        const $event = {};

        this.option.push({
          [option.product_option_id]: $event
        });

        const pushed = this.option[0];
        for (const key of Object.keys(pushed)) {
          console.log(`${key}: ${typeof key}`);
        }
    }
}
new Example();

也就是说,在计算属性名称的[]中的表达式就是这样:一个表达式。因此,如果您想露骨,可以在此处使用String

option.push({
  [String(option.product_option_id)]: $event
});