javascript - 谁能解释一下这段代码:

标签 javascript

我已经得到了这段代码,但无法获取 r.concat 部分,因为 concat 通常用于整个数组而不是其中的单个元素.

function doubleOddNumbers(numbers) {
  return numbers.reduce((r, n) => n % 2 ? r.concat(n * 2) : r, [])
}

最佳答案

下面是注释的代码:

function doubleOddNumbers(numbers) {
  return numbers.reduce( // reduce iterates over numbers and passes an accumulator from iteration to iteration
    (r, n) => // the reducer function called for each element, r is the accumulator, n is the element
      n % 2   // if the element is odd
        ? r.concat(n * 2) // then append its double to the accumulator
        : r   // otherwise return the accumulator unchanged
  , [])       // start with an empty array for the accumulator
}

这里是关于 reduce 的 MDN 文档和concat .

关于javascript - 谁能解释一下这段代码:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56045833/

相关文章:

javascript - 使用堆叠布局时将自定义值字段映射到 x 值

javascript - 意外的 token 导入(React JS 和 Babel)

javascript - 用 JavaScript 中的范围替换字符串中的子字符串

javascript - 重用 blaze 模板,如何访问其他模板的辅助函数?

javascript - TinyMCE - 未捕获类型错误 : wc[0]. removeClass 不是函数

javascript - 在 jquery 自动完成中获取所选项目的索引

javascript - RemoveChild javascript,如果没有更多的子节点不抛出错误

javascript - 在简单的 js for 循环中找不到问题

javascript - github 项目页面资源解释为脚本,但使用 MIME 类型 text/htm 传输

javascript - 更新查询更新不起作用