【问题标题】:variable object key(`${}`) [duplicate]变量对象键(`${}`)[重复]
【发布时间】:2020-02-18 05:10:32
【问题描述】:

我想使用另一个对象的数字作为我的对象键

我在制作对象时尝试使用${}(导致解析错误)

{
    this.props.tasks.map(i=>{
        return (
            data.push({
                name:i.name,
                `${parseInt(i.start, 10)}`:'x',
                `${parseInt(i.end, 10)}`:'x'
            })
        );
    })
}

错误信息:

Line 30:21:  Parsing error: Unexpected token

  28 |                 data.push({
  29 |                     name:i.name,
> 30 |                     `${parseInt(i.start, 10)}`:'x',
     |                     ^
  31 |                     `${parseInt(i.end, 10)}`:'x'   
  32 |                 })
  33 |                 );

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

您可以使用computed property names

{
  this.props.tasks
    .map(i => {
      return (data.push({ 
        name: i.name,
        [`${parseInt(i.start, 10)}`]: 'x',
        [`${parseInt(i.end, 10)}`]: 'x' 
      }));
    })
}


【讨论】:

    【解决方案2】:

    试试这个:

    {
        this.props.tasks.map(i=>{
            return (
                data.push({
                    name: i.name,
                    [`${parseInt(i.start, 10)}`]: 'x',
                    [`${parseInt(i.end, 10)}`]: 'x'
                })
            );
        })
    }
    

    括号表示法使用字符串,但您可以使用任何合法的 javascript 代码生成字符串。您可以将字符串指定为文字或使用变量或以某种方式计算。

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 2011-08-29
      • 2019-07-16
      • 1970-01-01
      • 2011-12-11
      • 2012-07-15
      • 1970-01-01
      • 2019-12-22
      • 2015-08-30
      相关资源
      最近更新 更多