Javascript для цикла не получает длину внутри другого цикла for - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь перебрать полученное значение json с моего сервера, например:

  [
    {
    below_min: [
    {
    y: 0,
    label: "Bhagalpur",
    color: "Red"
    },
    {
    y: 0,
    label: "Gopalganj",
    color: "Red"
    }
    ]
    },
    {
    min: [
    {
    y: 0.2,
    label: "Samastipur",
    color: "Orange"
    },
    {
    y: 0.3,
    label: "Saran",
    color: "Orange"
    }
    }
    ]
    }
]

Я использую этот код цикла для получения значения моего массива under_min:

  for (let index = 0; index < res.length; index++) {
        const element = res[index];
        console.log(element.below_min);  
        // const u = element.below_min

        for (let index = 0; index < element.below_min.length; index++) {
            const h = element.below_min[index];

        }

    }

но я получаю ошибку:

 ERROR TypeError: Cannot read property 'length' of undefined

Я пробовал несколько вещей, например, когда я пытаюсь увидеть, что это ниже_мин как тип, я вижу это как объект. У меня вопрос, что не так с моим кодом.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Ваш список содержит много элементов, у которых нет свойства below_min, и когда вы захотите достичь свойства, он вернет undefined.

0 голосов
/ 28 июня 2018

Ваш литерал Javascript Object имеет синтаксическую проблему. поэтому я попытался исправить это.

Вы можете попробовать следующий код и понять, как правильно получить below_min:

const res =  [
    {
        below_min: [
            {
                y: 0,
                label: "Bhagalpur",
                color: "Red"
            },
            {
                y: 0,
                label: "Gopalganj",
                color: "Red"
            }
        ]
    },
    {
        min: [
            {
                y: 0.2,
                label: "Samastipur",
                color: "Orange"
            },
            {
                y: 0.3,
                label: "Saran",
                color: "Orange"
            }
        ]
    }
];

for (let index = 0; index < res.length; index++) {
    const element = res[index];
    
    if(element.below_min){
        for (let minIndex = 0; minIndex < element.below_min.length; minIndex++) {
            const h = element.below_min[minIndex];
            console.log(h);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...