857 B
857 B
title, tags, firstSeen, lastUpdated
| title | tags | firstSeen | lastUpdated |
|---|---|---|---|
| reduceWhich | array,intermediate | 2018-01-24T12:41:03+02:00 | 2020-11-03T22:11:18+02:00 |
Returns the minimum/maximum value of an array, after applying the provided function to set the comparing rule.
- Use
Array.prototype.reduce()in combination with thecomparatorfunction to get the appropriate element in the array. - Omit the second argument,
comparator, to use the default one that returns the minimum element in the array.
const reduceWhich = (arr, comparator = (a, b) => a - b) =>
arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));
reduceWhich([1, 3, 2]); // 1
reduceWhich([1, 3, 2], (a, b) => b - a); // 3
reduceWhich(
[
{ name: 'Tom', age: 12 },
{ name: 'Jack', age: 18 },
{ name: 'Lucy', age: 9 }
],
(a, b) => a.age - b.age
); // {name: 'Lucy', age: 9}