有 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)
这段代码有什么问题?
数组中的
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)