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

使用NASA API访问absolute_magnitude_h属性时JavaScript报错求助

解决访问JSON属性时的TypeError问题

嘿,我来帮你搞定这个报错!

错误根源

你写的代码里有个很容易踩的语法坑:jsonData.near_earth_objects[2015-09-07][0] 中的 2015-09-07 会被 JavaScript 当成数学减法运算(2015 - 9 - 7 = 1989),而不是你想要的字符串键 "2015-09-07"。

这就导致你实际在访问 near_earth_objects[1989],这个键在你的JSON数据里根本不存在,所以返回 undefined。接着你试图访问 undefined 的 [0] 属性,自然就抛出了 Cannot read property '0' of undefined 的错误。

正确写法

只需要把日期键用引号包裹起来,让JS识别成字符串即可:

// 方法1:直接用字符串键访问
console.log(jsonData.near_earth_objects["2015-09-07"][0].absolute_magnitude_h);

// 方法2:把日期存成变量,更清晰(适合动态日期场景)
const targetDate = "2015-09-07";
console.log(jsonData.near_earth_objects[targetDate][0].absolute_magnitude_h);

额外注意事项

  1. 先确认数据结构:可以先打印 console.log(jsonData.near_earth_objects),检查里面是否真的包含 "2015-09-07" 这个键,以及对应的数组是否有至少一个元素。
  2. 关于你提供的测试API:这个接口返回的是单个近地天体的详情,它的 absolute_magnitude_h 是直接在根对象中的,不需要通过 near_earth_objects 访问,比如直接写 console.log(jsonData.absolute_magnitude_h) 就能拿到值。如果这是你误选的测试链接,忽略这条就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:01:42