循环嵌套深层次的属性 - React

时间:2016-07-30 03:40:05

标签: javascript reactjs

我正在尝试.map通过API(NASA API)返回的数据。我遇到的问题是深度嵌套的属性 - here's an example

data

在React中获取嵌套nameestimated_diameter属性数据的最佳方法是什么?通过axios,所有数据都可以正常运行。注销状态会返回:

state

由于嵌套对象和数组,我在map处理数据时遇到了问题。

2 个答案:

答案 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