如何从嵌套的json中获取最大值

问题描述 投票:0回答:1

有 json 对象,我想获取 showstopinfo 的最大值:

var data = [{
  "info": [
    {
      "ticketinfooo": {
        "showstopinfo": 1
      }
    },
    {
      "ticketinfooo": {
        "showstopinfo": 6
      }
    }

  ]
}, {

  "info": [
    {
      "ticketinfooo": {
        "showstopinfo": 22
      }
    },
    {
      "ticketinfooo": {
        "showstopinfo": 23
      }
    }

  ]
}]

我刚刚编写了下面的代码,但它返回 NAN 值:

var max = Math.max(...data.map(e => e.info.map(x => x.ticketinfooo.stoppinfoo.showstopinfo)))
console.log(max)

这段代码有什么问题?

javascript
1个回答
1
投票

数组中的

info
对象有两种结构,因此您需要在提取
map()
值的
showstopinfo
方法中考虑这一点。您还需要展平生成的数组。

这是一个工作示例:

const data = [{info:[{ticketinfooo:{stoppinfoo:{showstopinfo:1}}},{ticketinfooo:{stoppinfoo:{showstopinfo:6}}}]},{info:[{ticketinfooo:{showstopinfo:22}},{ticketinfooo:{showstopinfo:23}}]}];

var values = data.map(d => [...d.info.map(i => i.ticketinfooo.showstopinfo || i.ticketinfooo.stoppinfoo.showstopinfo)]).flat();
var max = Math.max.apply(null, values);
console.log(max)

© www.soinside.com 2019 - 2024. All rights reserved.