【问题标题】:Why can't Javascript spread operator be used after object key?为什么不能在对象键之后使用 Javascript 扩展运算符?
【发布时间】:2019-04-13 23:40:02
【问题描述】:

我有以下代码:

const array = [{
    a: 'a',
    b: 'b'
  }];

  console.log(...array);

  const store = {
    obj: ...array
  }

console.log 将打印结果就好了。但是,当尝试设置store 的密钥时,我得到了Parsing error: Unexpected token

...array 不是分配给storeobj 键的有效对象吗?

【问题讨论】:

    标签: javascript spread-syntax


    【解决方案1】:

    ... 将数组展开为单个项目。数组可以有超过 1 个元素,因此会有超过 1 个 RHS,这将是无效的。因此,您可以使用obj : {...array}obj : [...array]

    const array = [{a: 'a',b: 'b'},{c: 'c', d: 'd'}];
    
    console.log(...array);
    
    const store = {
      obj: {...array},
      obj1: [...array]
    };
      
      console.log(store);

    【讨论】:

      【解决方案2】:

      spread 语法在对象内部或可迭代内部工作。在您的情况下,您需要在数组中传播元素。

      Spread Syntax

      扩展语法允许一个可迭代对象,例如一个数组表达式或字符串在需要零个或多个参数(用于函数调用)或元素(用于数组字面量)的地方扩展,或在需要零个或多个键值对(对于对象字面量)的地方扩展的对象表达式。

      const array = [0, 1, 2]
      const store = {
        obj: [...array] // <-- the array is being spreded into an array.
      }
      
      console.log(store)

      【讨论】:

        猜你喜欢
        • 2020-10-22
        • 1970-01-01
        • 1970-01-01
        • 2017-12-07
        • 2017-10-18
        • 2019-09-11
        • 2019-05-16
        • 2018-05-13
        • 2018-04-14
        相关资源
        最近更新 更多