更喜欢破坏结构的修复不起作用

时间:2018-08-02 14:39:21

标签: javascript ecmascript-6 eslint

与:crandb

我有:

method (v100) => {
    let L,
        H;
    if (v100 <= 70) {
        const obj = {L: 1, H: 2};
        L = obj.L;
        H = obj.H;
    } else {
        L = ((0.8353 * (v100 ** 2)) + (14.67 * v100)) - 216;
        H = ((0.1684 * (v100 ** 2)) + (11.85 * v100)) - 97;
    }
    return ((L - 40) / (L - H)) * 100
}

并将其更改为

{ L } = obj;
{ H } = obj;

如答案中所写。但是现在我收到了意外的令牌错误。

应该也可以这样写,对吧?

{ L, H } = obj;

1 个答案:

答案 0 :(得分:1)

尝试:

({ L, H } = obj);

引用MDN web docs

  

在使用不带声明的对象文字解构赋值时,赋值语句周围的圆括号( ... )是必需的语法。

     

{a, b} = {a: 1, b: 2}是无效的独立语法,因为左侧的{a,b}被认为是一个块,而不是对象文字。

     

不过,({a, b} = {a: 1, b: 2})和var {a, b} = {a: 1, b: 2}都是有效的

     

注意:您的( ... )表达式必须以分号开头,或者可以将其用于执行上一行的功能。