猿问

从javascript中的json访问嵌套数组键,值

我是javascript新手。这可能是基本的事情,但我坚持下去。这是我的json:


{

    "statusCode": 200,

    "status": "success",

    "data": [

        [

            {

                "city": "Alexandria",

                "country": "Egypt",


            },

            {

                "city": "Alexandria",

                "country": "Egypt",


            },]]

我要访问此:


0: {city: "Alexandria", country: "Egypt"}

1: {city: "Antalya", country: "Turkey"}

我尝试了这段代码:


getData = function (data) {

    keys = Object.keys(data[0]);

    data = [];

    keys.forEach(function (key) {

        data.push(key);

    });

    return data;

}

返回以下内容:


0: "0"

1: "1"

2: "2"

3: "3"

4: "4"

5: "5"

6: "6

请帮我!


繁花如伊
浏览 178回答 3
3回答

慕斯709654

你可以做:const response = {  "statusCode": 200,  "status": "success",  "data": [    [{        "city": "Alexandria",        "country": "Egypt",      },      {        "city": "Alexandria",        "country": "Egypt",      },    ]  ]};const getData = data => data[0];console.log(getData(response.data));

开心每一天1111

getData = function(data){    arr = data.data[0];    new_data = []    for(var item in arr){        new_data.push(arr[item])    }}希望这会帮助你。

守候你守候我

首先,您data[0]是一个数组,然后Object.keys(array)将返回indexthat的数组array。前任:array= [{x: 1}, {x: 2}, {x: 3}]Object.keys(array) // ['0', '1', '2']因此,您推送到return数组的只是与您显示的索引相同的索引。其次,您应该使用不同的变量名以避免误解。在这种情况下,是data可变的。我更新了功能const object = {"statusCode": 200,"status": "success","data": [[{"city": "Alexandria","country": "Egypt",},{"city": "Alexandria","country": "Egypt",},]]}getData = function (arr) {  data = []  arr[0].forEach(function (key) {    data.push(key);  });  return data}console.log(getData(object.data))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答