查找数组的最大值,如果数组为空则为 0

2023-12-01

我需要一种干净的方式来寻找max对于 JavaScript 中的数组。说它是arrayMax, then:

arrayMax([]) // => 0
arrayMax([1], [2]) // => 2
arrayMax([-1]) // => -1

我尝试过的:

Math.max.apply(null, [1,2,3]) // => 3

但它不适用于:

Math.max.apply(null, []) // => -Infinity

请注意,这不是重复这个问题因为我希望空数组返回 0,而不是-Infinity


您需要一个检查数组长度的函数:

function arrayMax(arr) {
    return arr.length ? Math.max.apply(null, arr) : 0;
};

对于只有负值的数组,以 0 开头的解决方案将会产生错误的结果。

借助 ES6 支持,您可以避免apply方法并使用扩展运算符:

function arrayMax(arr) {
    return arr.length ? Math.max(...arr) : 0;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找数组的最大值,如果数组为空则为 0 的相关文章