今天在.codewars刷题的时候遇到一道题,其中关于箭头函数的返回值有点疑问,为什么这里reduce
function solve(files) {
let total = files
.map(file => file.match(/\.\w+$/)[0])
.reduce((acc, cur) => ((acc[cur] = (acc[cur] || 0) + 1), acc), {});
return total;
}
这里省略了return语句,但是括号里面有两条语句,为什么会返回acc呢?
如果箭头函数中只有一个语句,那么可以省略return,这里
(acc[cur] = (acc[cur] || 0) + 1), acc
就是一个语句,,
是起到了连接语句的作用,如var a,b,c
。所以函数可以看成