我有一个看起来像这样的对象:

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作为累加器的初始值,即t0小于所有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)

10-06 14:09
查看更多