可变对象键(`$ {}`)

时间:2019-10-22 05:38:26

标签: javascript reactjs

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

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

{
    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 |                 );

2 个答案:

答案 0 :(得分:2)

您可以使用computed property names

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


答案 1 :(得分:0)

尝试一下:

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

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