我正在尝试.map
通过API(NASA API)返回的数据。我遇到的问题是深度嵌套的属性 - here's an example。
在React中获取嵌套name
和estimated_diameter
属性数据的最佳方法是什么?通过axios,所有数据都可以正常运行。注销状态会返回:
由于嵌套对象和数组,我在map
处理数据时遇到了问题。
答案 0 :(得分:0)
假设nasa数据json保存在变量nasaData中,下面的代码将打印所有名称和estimated_diameter
var nearEarthObjects = nasaData['near_earth_objects'];
for (var property in nearEarthObjects) {
if (nearEarthObjects.hasOwnProperty(property)) {
var data = nearEarthObjects[property];
data.forEach(function(d){
console.log(d['name']);
console.log(d['estimated_diameter']);
});
}
}
ps:这可能适用于reactjs项目,但它实际上只是javascript
答案 1 :(得分:0)
您可以先覆盖日期。
const { near_earth_objects } = nasaData; //assuming nasaData is the json object
const dateKeys = Object.keys(near_earth_objects);
const nameAndEstimatedDiameters = dateKeys.map((dateKey) => {
const dateData = near_earth_objects[dateKey];
const { name, estimated_diameter } = dateData;
return { name, estimated_diameter };
});
//now nameAndEstimatedDiameters is an array of objects here
//which you can map again