猿问

查找嵌套对象属性的最小值

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


const yo = {

  one: {

    value: 0,

    mission: 17},

  two: {

    value: 18,

    mission: 3},

  three: {

    value: -2,

    mission: 4},

}

mission我想找到嵌套对象中 prop的最小值。此行用于查找嵌套 prop 的最小值value并返回-2:


const total = Object.values(yo).reduce((t, {value}) => Math.min(t, value), 0)

但是当我对 prop 尝试同样的操作时mission,它会0在应该返回的时候返回3:


const total = Object.values(yo).reduce((t, {mission}) => Math.min(t, mission), 0)

我是否遗漏或做错了什么?



蓝山帝景
浏览 131回答 2
2回答

森林海

在这种情况下,map就足够了。const yo = {  one: {    value: 9,    mission: 17  },  two: {    value: 18,    mission: 6  },  three: {    value: 3,    mission: 4  },}const total = Object.values(yo).map(({ mission }) => mission);console.log(Math.min(...total));

弑天下

0您将作为累加器 ie 的初始值传递t。0小于所有mission值。因此,您需要传递最大值 ieInfinity作为 的第二个参数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)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答