javascript - 访问和打印嵌套的 JSON 对象
问题描述
我无法访问以下对象中的嵌套键。我正在尝试在“close_approach_data”内的“relative_velocity”中打印所有“kilometers_per_second”。
我得到一个错误,不明白我做错了什么。先感谢您
const asteroidData = near_earth_objects
.map((data) => data.close_approach_data[0])
.map((e) => e.relative_velocity);
// TypeError: Cannot read property 'relative_velocity' of undefined
or
const asteroidData = near_earth_objects
.map((data) => data.close_approach_data[0].relative_velocity);
// TypeError: Cannot read property 'relative_velocity' of undefined
JSON对象:
"near_earth_objects": [
{
"links": {
"self": "http://www.neowsapp.com/rest/v1/neo/2021277?api_key=24TE7EgNfmXIvdb6vNNZGBWx8s54XbZzCCi2oAdN"
},
"id": "2021277",
"neo_reference_id": "2021277",
"name": "21277 (1996 TO5)",
"designation": "21277",
"nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2021277",
"absolute_magnitude_h": 16.1,
"estimated_diameter": {
"kilometers": {
"estimated_diameter_min": 1.6016033798,
"estimated_diameter_max": 3.5812940302
},
"meters": {
"estimated_diameter_min": 1601.6033797856,
"estimated_diameter_max": 3581.2940301941
},
"miles": {
"estimated_diameter_min": 0.9951898937,
"estimated_diameter_max": 2.2253122528
},
"feet": {
"estimated_diameter_min": 5254.6044325359,
"estimated_diameter_max": 11749.652706022
}
},
"is_potentially_hazardous_asteroid": false,
"close_approach_data": [
{
"close_approach_date": "1945-06-07",
"close_approach_date_full": "1945-Jun-07 22:35",
"epoch_date_close_approach": -775272300000,
"relative_velocity": {
"kilometers_per_second": "15.5094751879",
"kilometers_per_hour": "55834.1106763388",
"miles_per_hour": "34693.1450477507"
},
"miss_distance": {
"astronomical": "0.0334232973",
"lunar": "13.0016626497",
"kilometers": "5000054.084456751",
"miles": "3106889.5396991238"
},
"orbiting_body": "Mars"
}
],
"is_sentry_object": false
},
// Object continues repeating the above structure
解决方案
您需要所有值还是只需要kilometers_per_second
值?
let near_earth_objects = [
{
"links": {
"self": "http://www.neowsapp.com/rest/v1/neo/2021277?api_key=24TE7EgNfmXIvdb6vNNZGBWx8s54XbZzCCi2oAdN"
},
"id": "2021277",
"neo_reference_id": "2021277",
"name": "21277 (1996 TO5)",
"designation": "21277",
"nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2021277",
"absolute_magnitude_h": 16.1,
"estimated_diameter": {
"kilometers": {
"estimated_diameter_min": 1.6016033798,
"estimated_diameter_max": 3.5812940302
},
"meters": {
"estimated_diameter_min": 1601.6033797856,
"estimated_diameter_max": 3581.2940301941
},
"miles": {
"estimated_diameter_min": 0.9951898937,
"estimated_diameter_max": 2.2253122528
},
"feet": {
"estimated_diameter_min": 5254.6044325359,
"estimated_diameter_max": 11749.652706022
}
},
"is_potentially_hazardous_asteroid": false,
"close_approach_data": [
{
"close_approach_date": "1945-06-07",
"close_approach_date_full": "1945-Jun-07 22:35",
"epoch_date_close_approach": -775272300000,
"relative_velocity": {
"kilometers_per_second": "15.5094751879",
"kilometers_per_hour": "55834.1106763388",
"miles_per_hour": "34693.1450477507"
},
"miss_distance": {
"astronomical": "0.0334232973",
"lunar": "13.0016626497",
"kilometers": "5000054.084456751",
"miles": "3106889.5396991238"
},
"orbiting_body": "Mars"
}
],
"is_sentry_object": false
}];
let result = near_earth_objects.flatMap(({close_approach_data }) => close_approach_data.map(({relative_velocity})=> relative_velocity.kilometers_per_second));
console.log(result);
推荐阅读
- c# - Azure 函数 - 从事件中心触发器向 Azure SignalR 服务发送消息
- gcc - LFS 9.1,步骤 6.9 (glibc-2.31),打破 gcc
- html - 双滚动条问题
- bluesnap - 在 BlueSnap 中为回头客设置 3-D 安全
- reactjs - 使用 React-Leaflet 时如何限制标记的数量?
- javascript - wickedpicker 未显示选定的时间值
- r - 在多元模型中绘制单个协变量回归线
- indexing - Lucene 如何处理重复文档?
- php - PURCHASE WITH PURCHASE 如果他们正在添加来自特定类别的产品,则最低购物车数量
- angular - Ionic / Angular 拦截器发送重复的 HTTP 请求