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