我有一个看起来像这样的对象:
const yo = {
one: {
value: 0,
mission: 17},
two: {
value: 18,
mission: 3},
three: {
value: -2,
mission: 4},
}
我想在嵌套对象中找到mission
prop的最小值。该行用于查找嵌套value
属性的最小值并返回-2
:const total = Object.values(yo).reduce((t, {value}) => Math.min(t, value), 0)
但是,当我为mission
Prop 尝试相同的操作时,当它应该为0
时,它将返回3
:const total = Object.values(yo).reduce((t, {mission}) => Math.min(t, mission), 0)
是否有我缺少或做错的事情? 最佳答案
您正在传递0
作为累加器的初始值,即t
。 0
小于所有mission
值。因此,您需要传递最大值,即Infinity
作为reduce()
的第二个参数。
const yo = {
one: {
value: 0,
mission: 17},
two: {
value: 18,
mission: 3},
three: {
value: -2,
mission: 4},
}
const total = Object.values(yo).reduce((t, {mission}) => Math.min(t, mission), Infinity);
console.log(total)