在 reduce 中使用 -Infinity 的原因

Reason of using -Infinity in reduce

所以我正在阅读一些函数式编程并且有一个:

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

你能在这里解释一下 -Infinity 的确切作用是什么吗?

可能是为了模仿 Math.max 的行为,returns -infinity 在不带参数调用时:

console.log(Math.max());

类似地,对于您的 max 函数,使用空数组调用 max 将导致 -infinity:

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

不过, 在大多数情况下都没有用,它可能只是为了在空数组上调用时成为常规的、可预测的输出,而不是其他任何东西(例如作为抛出错误,或返回 0null).