在地图(JS)中使用标识符(下划线)

时间:2018-09-23 07:17:03

标签: javascript

我在JS中遇到了一个有趣的代码,其中使用纯函数计算整数的阶乘。代码如下:

function factValues(n) {
return new Array(n-1).
fill(0).
map((_,i) => i + 2).
reduce((acc, e, i) => acc.concat([e*acc.slice(-1)[0]]),
 [1]);

}

所以,如果我尝试factValues(6):我得到的输出是:[1,2,6,24,120,760]

有人可以向我解释代码吗?我不明白。

1 个答案:

答案 0 :(得分:1)

下划线被用作占位符。 Array.map的语法如下:

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
  // Return element for new_array
}[, thisArg])

在这种情况下,该函数不关心currentValue,而只需要索引。必须添加占位符,否则将无法使用索引值。

请参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map