gpt4 book ai didi

javascript - 使用数字和连字符访问 Javascript 对象键

转载 作者:行者123 更新时间:2023-11-28 18:38:31 26 4
gpt4 key购买 nike

我正在将 NASA 近地物体阵列用于学生项目,但在访问具有日期和连字符作为键的嵌套对象时遇到问题,例如

2016-09-08 : [...]

我返回的错误只是“未定义”。

我的 API 调用是:

$(document).ready(function NASAtest() {
$.ajax({
type: "GET",
url: "https://api.nasa.gov/neo/rest/v1/feed?start_date=2016-09-07&end_date=2016-09-08&api_key=DEMO_KEY",
asynch: false,
contentType: "application/javascript",
dataType: "json",
success: function(data) {
console.log(data)
var recordList = data.near_earth_objects;
console.log(recordList);
var recordList2 = data.near_earth_objects[2016-09-08];
console.log(recordList2);

}
});
});

API 数据示例:

{
"near_earth_objects": {
"2016-09-08": [
{
"neo_reference_id": "3726710",
"name": "(2015 RC)",
"nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3726710",
"absolute_magnitude_h": 24.3,
"is_potentially_hazardous_asteroid": false,
} ] } }

参见 fiddle :https://jsfiddle.net/lollyborch/v640ocfr/

和 JSON 数据:https://api.nasa.gov/neo/rest/v1/feed?start_date=2016-09-07&end_date=2016-09-08&api_key=DEMO_KEY

我最终想迭代所有日期信息,以深入了解日期范围的“absolute_magnitude_h”和“is_潜在_hazardous_asteroid”等键,但在现阶段我只是无法通过日期键。

我尝试使用方括号而不是点符号,如here所述和 here但似乎看不出我做错了什么。

任何有关正确方向的想法将不胜感激。

最佳答案

属性名称为 2015-09-08,但是,您正在访问 key 1998 (2015 - 9 - 8)。您需要将其用引号引起来,否则它将计算表达式并将其结果用作属性名称:

data.near_earth_objects["2015-09-08"]
<小时/>

作为旁注,由于您在问题中提到了点表示法,因此在这种情况下您必须使用括号表示法而不是点表示法,因为等效的属性名称在点表示法中不起作用。

<小时/>

话虽如此,当您沿着这条路线进一步前进时,您可能最终会迭代对象的内容而不是使用硬编码名称,此时问题会自行解决:

for (var neo in data.near_earth_objects) {
//neo is now, for instance, "2016-09-07"
console.log(neo, data.near_earth_objects[neo])
}

关于javascript - 使用数字和连字符访问 Javascript 对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36550519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com