This function finds the largest number in an array of objects, based on a specified key.
JavaScript:
let maxItemByKey = (arr, key) => arr.reduce((max, obj) => obj[key] > max[key] ? obj : max);
// Example
console.log(maxItemByKey([{id: 1, value: 10}, {id: 2, value: 5}, {id: 3, value: 20}], 'value')); // {id: 3, value: 20}
console.log(maxItemByKey([{name: 'a', age: 20}, {name: 'b', age: 15}, {name: 'c', age: 25}], 'age')); // {name: 'c', age: 25}
TypeScript:
let maxItemByKey = (arr: T[], key: string): T => arr.reduce((max, obj) => obj[key] > max[key] ? obj : max);
// Example
console.log(maxItemByKey([{id: 1, value: 10}, {id: 2, value: 5}, {id: 3, value: 20}], 'value')); // {id: 3, value: 20}
console.log(maxItemByKey([{name: 'a', age: 20}, {name: 'b', age: 15}, {name: 'c', age: 25}], 'age')); // {name: 'c', age: 25}