我需要一种干净的方法来为 JavaScript 中的数组查找 max
。假设它是arrayMax
,那么:
arrayMax([]) // => 0
arrayMax([1], [2]) // => 2
arrayMax([-1]) // => -1
我尝试过的:
Math.max.apply(null, [1,2,3]) // => 3
但它不适用于:
Math.max.apply(null, []) // => -Infinity
请注意,它不是 this question 的重复项因为我希望空数组返回 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;
};
关于javascript - 查找数组的最大值,如果数组为空则为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500068/