Javascript 如何访问具有日期格式的对象属性?

Javascript 如何访问具有日期格式的对象属性?,javascript,reactjs,Javascript,Reactjs,我需要从NASA的API中获取一些数据,它位于一个嵌套对象中。他们的数据按日期排序,因此每个键的格式如下:2018-09-07 const asteroidList = this.props.asteroids.near_earth_objects //works fine, can access data up to this point console.log(asteroidList) 我无法访问任何超过此点的内容,因为我的文本编辑器不断出现错误。我假设一定有某种转换方法或某种我不知道的

我需要从NASA的API中获取一些数据,它位于一个嵌套对象中。他们的数据按日期排序,因此每个键的格式如下:2018-09-07

const asteroidList = this.props.asteroids.near_earth_objects //works fine, can access data up to this point
console.log(asteroidList)
我无法访问任何超过此点的内容,因为我的文本编辑器不断出现错误。我假设一定有某种转换方法或某种我不知道的读取日期的方法,但我找不到任何对象键值对的方法。

您需要通过2018-09-07内部引号
“2018-09-07”
还添加了对未定义案例的检查以避免错误

const asteroidList = this.props.asteroids && this.props.asteroids.near_earth_objects && this.props.asteroids.near_earth_objects['2018-09-07']
console.log(asteroidList)

我检查NASA API的响应是什么,关键不是日期值,而是日期字符串

因此,如果您有一个对象列表,并且只想访问具有特定日期的对象,则必须迭代这些对象并搜索特定对象:

const list=[
{
“日期”:“1995-06-16”,
“解释”:"今天的图片:说明:如果地球能以某种方式转变成中子星的超高密度,它可能会出现在上面的计算机生成的图形中。由于非常强的引力场,中子星会使背景天空的光线发生很大的扭曲。如果你仔细看,两张星座的图像猎户座是可见的。这颗中子星的引力如此之大,以至于中子星的任何部分都不会被挡住——光甚至从中子星的背面被引力所吸引。我们保存了一个档案文件。这一天的天文学图片是由罗伯特·内米洛夫和杰里·邦内尔带给你的。这是原始资料该页面的版权归Robert Nemiroff和Jerry Bonnell所有。”,
“hdurl”:”https://apod.nasa.gov/apod/image/e_lens.gif",
“媒体类型”:“图像”,
“服务版本”:“v1”,
“标题”:“中子星地球”,
“url”:”https://apod.nasa.gov/apod/image/e_lens.gif"
},
{
“日期”:“1999-07-11”,
“解释”:今天的图片:说明:如果地球能以某种方式转变成中子星的超高密度,它可能会出现在上面的计算机生成的图形中。由于非常强的引力场,中子星会使背景天空的光线发生很大的扭曲。如果你仔细看,两张星座的图像猎户座是可见的。这颗中子星的引力如此之大,以至于中子星的任何部分都不会被挡住——光甚至从中子星的背面被引力所吸引。我们保存了一个档案文件。这一天的天文学图片是由罗伯特·内米洛夫和杰里·邦内尔带给你的。这是原始资料该页面的版权归Robert Nemiroff和Jerry Bonnell所有。”,
“hdurl”:”https://apod.nasa.gov/apod/image/e_lens.gif",
“媒体类型”:“图像”,
“服务版本”:“v1”,
“标题”:“中子星地球”,
“url”:”https://apod.nasa.gov/apod/image/e_lens.gif"
},
{
“日期”:“2010-01-22”,
“解释”:今天的图片:说明:如果地球能以某种方式转变成中子星的超高密度,它可能会出现在上面的计算机生成的图形中。由于非常强的引力场,中子星会使背景天空的光线发生很大的扭曲。如果你仔细看,两张星座的图像猎户座是可见的。这颗中子星的引力如此之大,以至于中子星的任何部分都不会被挡住——光甚至从中子星的背面被引力所吸引。我们保存了一个档案文件。这一天的天文学图片是由罗伯特·内米洛夫和杰里·邦内尔带给你的。这是原始资料该页面的版权归Robert Nemiroff和Jerry Bonnell所有。”,
“hdurl”:”https://apod.nasa.gov/apod/image/e_lens.gif",
“媒体类型”:“图像”,
“服务版本”:“v1”,
“标题”:“中子星地球”,
“url”:”https://apod.nasa.gov/apod/image/e_lens.gif"
}
]
list.forEach(元素=>{
如果(element.date==“1999-07-11”){
控制台日志(元素);
}

})
2018-09-07不应该像
[“2018-09-07”]
那样引用
2018-09-07
你能把收到的json发回吗?@Farah10“无法读取
未定义的
的属性
'2018-09-07'
”“。这意味着链在
这个.props.asteroids
之前是好的,但是
近地天体
不是
这个.props.asteroids
的财产。你能把数据贴出来吗?可能有很多原因没有定义。例如,也许你想在它有任何数据之前就使用它。@MaheerAli我很笨。我试过了,但又回到了“无法读取属性”2018-09-07的“未定义”,所以我认为这不是解决方案。事实证明,在运行API调用之前,我必须将其放在引号中并进行三元运算,以确保没有显示数据。当然,当我发布这个问题的时候,我就明白了。谢谢
const asteroidList = this.props.asteroids && this.props.asteroids.near_earth_objects && this.props.asteroids.near_earth_objects['2018-09-07']
console.log(asteroidList)