代码之家  ›  专栏  ›  技术社区  ›  Julius Dzidzevičius

reduce中使用-无穷大的原因

  •  2
  • Julius Dzidzevičius  · 技术社区  · 6 年前

    所以我读了一些函数式编程,有一个:

    const max = xs => reduce((acc, x) => (x >= acc ? x : acc), -Infinity, xs);
    

    你能解释一下 无穷大 在这里?

    1 回复  |  直到 6 年前
        1
  •  3
  •   CertainPerformance    6 年前

    很可能是为了模仿 Math.max ,它返回 -infinity 当调用时没有参数:

    console.log(Math.max());

    同样,你的 max 函数, 最大值 使用空数组调用将导致 无穷大 :

    const max = xs => xs.reduce((acc, x) => (x >= acc ? x : acc), -Infinity, xs);
    console.log(max([]));

    不过,这不是 那个 在大多数情况下都很有用,它可能只是为了在空数组上调用时成为常规的、可预测的输出(例如抛出错误或返回 0 null )

    推荐文章