javascript - 返回数组javascript的最大值

标签 javascript arrays

我试图在 JavaScript 中返回数组的最大值,而不使用 Math.max 功能。是 reduce 有好的方法吗?我的问题是它返回 5不是11就像我想要的那样。我是否以最好的方式解决这个问题?有人可以引导我走向正确的方向吗?

这是我到目前为止所拥有的:

function max(arr) {
  return arr.reduce(function(prev, curr) {
    return (prev.value >= curr.value) ? prev : curr;
  });
}

console.log(
  max([3, 1, 2, 7, 11, 3, 4, 5])
);

最佳答案

数组的元素不是对象(因此,它们没有您尝试评估的属性 value),它们是纯数字,因此您可以将每个数组项与 进行比较直接reduce()聚合参数:

const arr = [3, 1, 2, 7, 11, 3, 4, 5],
      arrMax = arr => arr.reduce((max,n) => n > max ? n : max)
      
console.log(arrMax(arr))

关于javascript - 返回数组javascript的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59523577/

相关文章:

javascript - 如何自动滚动到 ListView 项目

javascript - Angular JS - 如果使用 HTML 元素成功提交表单,则通知用户

javascript - 检查var是否在数组中

arrays - 用数组存储k叉树

Javascript 2D 数组意外行为

c - 使用 printf 打印数组,字符之间有空格

javascript - 检查是否加载了 Mixpanel 库

javascript - 有没有更好的方法来检查数组中的相似性?

javascript - 为什么当我调用代理服务器 api 时会附加网站 url

java - 简单的二维数组java游戏