javascript - 将函数传递给 map

标签 javascript

我试图理解这个简单的代码片段

function fnWrapper (fn) {
  return function printResults (...args) {
    const results = args.map(fn)
    console.log(results)
  }
}

const squarePrinter = fnWrapper(x => x*x)
const cubePrinter = fnWrapper(x => x*x*x)
const nums = [1, 2]

squarePrinter(1, 2)
cubePrinter(1, 2)

虽然,几乎所有的东西都是有道理的,但我无法理解这部分 args.map(fn)

map 应该给出一个元素,但是我们如何能够传递我们的 fn 函数并直接获得所需的结果

最佳答案

根据 map文档它将回调函数作为参数并返回一个新数组,每个元素都是回调函数的结果。

例如

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

所以在你的情况下

squarePrinter(1, 2)
const results = args.map(fn) 

相当于

const results = [1, 2].map(function(x) {
  return x*x;
})

关于javascript - 将函数传递给 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57001029/

相关文章:

javascript - PHP : Create some form and submit it with <a href

javascript - 如果我不必发回任何数据,服务器是否有任何好的技巧来处理更多请求?

javascript - Spinner 最小时间延迟 Jquery

javascript - jQuery 在文本输入点击时不起作用

javascript - UTF-8 csv 编码

PHP:为什么当我打印 session 内容时忽略前导零?

javascript - 连接几个 javascript 文件时出现问题

javascript - 在 getElementById 中添加多个 id

javascript - 从嵌套的 jquery 对话框运行服务器端方法

javascript,在 highcharts map 上缩放后更改默认位置