You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从嵌套JSON中获取showstopinfo最大值?代码返回NaN求解

代码问题分析及修正

问题1:属性名拼写错误

原数据里showstopinfo是直接挂载在ticketinfooo对象下的,但你的代码写成了x.ticketinfooo.stoppinfoo.showstopinfo——多了一层不存在的stoppinfoo属性,访问不存在的属性会返回undefined,这是导致Math.max返回NaN的核心原因之一。

问题2:嵌套数组未正确平铺

data.map(e => e.info.map(...))会生成一个二维数组(比如[[1,6], [22,23]]),直接用...展开这个二维数组传给Math.max,相当于给函数传入了两个数组参数,而Math.max无法直接处理数组作为参数(仅支持展开后的单个数字),这也会导致计算结果为NaN。


修正后的代码

// 先把所有showstopinfo值平铺成一维数组,再求最大值
var max = Math.max(...data.flatMap(e => e.info.map(x => x.ticketinfooo.showstopinfo)))
console.log(max) // 输出23

如果运行环境不支持flatMap,可以用更兼容的写法:

var allValues = [];
data.forEach(e => {
  e.info.forEach(x => {
    allValues.push(x.ticketinfooo.showstopinfo);
  });
});
var max = Math.max(...allValues);
console.log(max) // 输出23

内容的提问来源于stack exchange,提问作者sahar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:55:57