如何找到最轻的物体

How to find the lightest object

你好,我怎样才能从对象数组中找到最轻的对象。我不是要获取值,而是要获取具有这个值的对象。例如,不仅仅是 1200,而是对象 {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,
    });
  });

由于您已经有了一个对象列表,您需要做的就是根据对象的 mass 属性对对象进行排序。解决这个问题的方法是编写一个自定义比较器函数,用于排序(参见 Array.prototype.sort())。

对于数字类型,比较器函数 (a,b) => a - b 将对值进行递增排序,myArray.sort((a, b) => a - b) 将相应地对 myArray 进行排序。

排序 elephantObject.sort((a,b) => a.mass - b.mass) 后,最轻的大象将成为对象数组的第一个条目:elephantObject[0]。 作为

reduce 方法使用回调函数将数组缩减为单个值。

const getLightest = (initial, current){
    return (initial.mass < current.mass)?initial:current;
}
const lightest = elephantObject.reduce(getLightest);