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

标签 javascript

我需要一种干净的方法来为 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/

相关文章:

javascript - manifest.json 的问题

javascript - 使用 Javascript 和 css 的菜单栏

javascript - 获取Object中的所有子项

javascript - react 中的 setTimeout 函数导致类型错误

javascript - 使用 React Form、Flask 服务器和 Flask-WTF 进行 CSRF 保护

javascript - 将 arraylist 中已表示的值添加到 arraylist 中

javascript - 关于pdfviewer中pdf.js的分辨率

javascript - 从 JQUERY-UI Sortable 中删除 "Dragging"图形

javascript - 如何确定 jquery 中 div 组的焦点丢失。

javascript - 使用 JavaScript 调用 Laravel Controller 中的 POST 方法