如何拿到数组元素里属性最大的对象

68 阅读1分钟

从前(启)

群里面突发疑问:对象数组里面有一个val是数字,我怎么找到最大的那一项呢?
image.png

经过(承)

  • 排序可以 sort return a.num-b.num
  • reduce 也可以
    image.png

然后(转)

单纯这么写貌似没有完成需求(PS. 提问者描述不太清楚)。 image.png

结果(合)

上代码

const source = [{a: 1, b: 1}, {a: 2, b: 2}, {a: 5, b: 3}, {a: 4, b: 4}, {a: 3, b: 6}]

const MaximumProperty = (source, property) => {
  return source.reduce((cur, acc) => cur[property] === Math.max(cur[property], acc[property]) ? cur : acc, {[property]: null})
}
const max_element_a = MaximumProperty(source, "a")
const max_element_b = MaximumProperty(source, "b")

console.log(5, max_element_a)
console.log(6, max_element_b)

// 5 { a: 5, b: 3 }
// 6 { a: 3, b: 6 }