我试图在 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/