javascript - 在 map (JS)中使用标识符(下划线)

标签 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]

有人能给我解释一下代码吗?我没听懂。

最佳答案

下划线用作占位符。 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

关于javascript - 在 map (JS)中使用标识符(下划线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463903/

相关文章:

javascript - 是否可以在 es6 模板字符串中进行评论?

javascript - 表排序器未生效

javascript - 将 iframe 附加到 div 而不刷新

javascript - 使用 javascript 不会更改 anchor 标记的文本

JavaScript:在 switch case 中使用条件

javascript - 如何从 React Native 输入字段获取值?

javascript - 如何传递表单 onKeyUp 的 id?

javascript - HTML <option></option> 标签中的 onselect 事件

javascript - JavaScript 中的赋值和 var 关键字

javascript - 将js变量放入wordpress函数中