¿Cómo puedo encontrar el objeto más ligero de una matriz de objetos? No quiero obtener valor, sino el objeto con este valor. No, por ejemplo, solo 1200 sino el objeto { mass: 1200, numberOfel: ..., indexOfEl: ... , isCorrect: boolean}
let massOfElephants = [2400, 2000, 1200, 2400, 1600, 4000]; let startOrder = [1, 4, 5, 3, 6, 2]; const elephantObject = []; startOrder.forEach((val, i) => { elephantObject.push({ mass: massOfElephants[val - 1], numberOfEl: val, indexOfEl: i, isCorrect: false, }); });Como ya tiene una lista de objetos, todo lo que necesita hacer es ordenar los objetos de acuerdo con sus propiedades de mass . La forma de hacerlo es escribir una función de comparación personalizada por la cual ordenar (ver Array.prototype.sort() ).
Para los tipos numéricos, la función de comparación (a,b) => a - b ordenará los valores de forma creciente, y myArray.sort((a, b) => a - b) ordenará myArray consecuencia.
Después de ordenar elephantObject.sort((a,b) => a.mass - b.mass) , el elefante más ligero será la primera entrada de su matriz de objetos: elephantObject[0] . como
El método de reducción reduce una matriz a un solo valor mediante una función de devolución de llamada.
const getLightest = (initial, current){ return (initial.mass < current.mass)?initial:current; } const lightest = elephantObject.reduce(getLightest);