2020-04-23
描述
对数组中的每一个元素使用提供的函数进行运算后,返回结果集中的最大值。
提示
- 使用
Array.prototype.map()
迭代每一个元素,返回通过fn
运算后的值 - 最后使用
Math.max()
获取最大值
代码
const maxBy = (arr, fn) => Math.max(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
示例
通过指定方法计算后获取最大值:
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], o => o.n); // 8
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], 'n'); // 8