Digamos que tengo una matriz de objetos como este
const arr = [ {name: 'John', age: 15}, {name: 'Max', age: 17}, {name: 'Tom', age: 11}, ]¿Cómo puedo tomar solo el objeto que contiene a Max, 17? este seria el resultado
b = [{ name: Max, age: 17 }]o mejor
c = { name: Max, age: 17 }Reduzca la matriz al objeto con mayor age :
const arr = [{"name":"John","age":15},{"name":"Max","age":17},{"name":"Tom","age":11}] const result = arr.reduce((acc, o) => !acc || o.age > acc.age ? o : acc, null) console.log(result) Estoy usando null como valor predeterminado para Array.reduce() para evitar un error si la matriz está vacía. Sin embargo, también puede verificar si hay una matriz vacía de antemano:
const findMaxAge = arr => arr.length ? arr.reduce((acc, o) => o.age > acc.age ? o : acc) : null const arr = [{"name":"John","age":15},{"name":"Max","age":17},{"name":"Tom","age":11}] console.log(findMaxAge(arr)) console.log(findMaxAge([]))Puede ordenar por edad primero, luego el objeto con el valor de edad más alto estará al comienzo de la lista:
const a = [ {name: "John", age: 15}, {name: "Max", age: 17}, {name: "Tom", age: 11}, ] const sortedByAge = a.sort((a,b) => b.age - a.age); const highestAge = sortedByAge[0]; console.log(highestAge);Espero que este código te ayude.
const a = [{name: 'John', age: 15}, {name: 'Max', age: 17}, {name: 'Tom', age: 11},]; const result = a.reduce((p, c) => p.age > c.age ? p : c); console.log(result);