在JavaScript

时间:2018-04-25 15:16:27

标签: javascript

我在Kyle Simpson的@ kyle-simpson书Functional-Light JavaScript中看到了以下JavaScript,并对其语法的一部分感到好奇:

    const double = v => v * 2;

    const reducer = (list, v) => (list.push(double(v)), list);

    var doubled = [1, 2, 3, 4, 5].reduce(reducer, []);

    console.log(doubled);
    //[2, 4, 6, 8, 10]

    var reduced = reducer([3], 2);

    console.log(reduced);
    //[3, 6]

具体来说,我不确定reducer函数返回值周围的外括号的含义和用法:

(list.push(double(v)), list)

在括号中包装对象文字是一种从箭头函数隐式返回它的方法,但这似乎是不同的。

此外:

var val = (3, 2);

console.log(val);
//2

这似乎表明括号将返回其列表中的最后一个值,该值与reducer函数的签名匹配,但我不知道这个构造被调用了什么。

提前感谢您的回复。

0 个答案:

没有答案