在 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([]));
不过, 在大多数情况下都没有用,它可能只是为了在空数组上调用时成为常规的、可预测的输出,而不是其他任何东西(例如作为抛出错误,或返回 0
或 null
).
所以我正在阅读一些函数式编程并且有一个:
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([]));
不过, 在大多数情况下都没有用,它可能只是为了在空数组上调用时成为常规的、可预测的输出,而不是其他任何东西(例如作为抛出错误,或返回 0
或 null
).