【问题标题】:How can loop be rewritten as anonymous function? [closed]如何将循环重写为匿名函数? [关闭]
【发布时间】:2020-11-06 10:04:34
【问题描述】:

这种类型的循环如何被覆盖

let num - fieldOffset[0];
for (let i = 1; i < fieldOffset.length; i++) {
          if (fieldOffset[i] < fieldOffset[i - 1]) {
            num += fieldOffset[i];
          }
        }

作为以下类型的匿名函数:

const reducer = (accumulator, currentValue) => accumulator + currentValue;
array1.reduce(reducer)

【问题讨论】:

  • "覆盖" => "重写"?
  • 欢迎来到 Stack Overflow!请使用tour(您将获得徽章!)并通读help center,尤其是How do I ask a good question? 您最好的选择是进行研究,search 以获取有关 SO 的相关主题,然后试一试. 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。

标签: javascript loops reduce


【解决方案1】:

使用 Array.prototype.reduce 的第三个(可选)参数应该可以解决问题:

num = fieldOffset.reduce((acc, value, index) => acc += (index && (value > fieldOffset[index - 1])) ? value : 0, 0);

【讨论】:

  • 朋友,现在检查一下,我添加了一个值“num”。我需要总结数组中符合条件的所有值。这个怎么写?
  • 我的行做了你的代码在编辑之前所做的事情,你的编辑现在在语法上是错误的,如果你想让 num 从第一个数组项值开始,就这样做: num = fieldOffset[0] + fieldOffset .reduce(...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 2015-01-15
  • 1970-01-01
相关资源
最近更新 更多