Проверка, если переменная не определена - PullRequest
0 голосов
/ 27 декабря 2018

Итак, я хочу проверить, является ли переменная неопределенной в node.js.Пока я работаю так:

if(typeof object.data.items[1] === 'undefined')
{
    break;  
}
else
{
    console.log("Defined");         
}

Но это выдает мне эту ошибку:

"Ошибка типа: невозможно прочитать свойство 'data' of undefined".

Любые идеи о том, как обойти эту ошибку, все еще проверяя, является ли она неопределенной?

Ответы [ 4 ]

0 голосов
/ 27 декабря 2018

Когда вы пытаетесь получить доступ к свойству объекта JSON, вы должны убедиться, что левая часть вашего оператора точки должна иметь какое-то значение, но не неопределенное или нулевое.т.е. если вы хотите получить доступ к a.b.c.d, вам нужно убедиться, что каждое свойство левой стороны имеет какое-то значение.Вы можете использовать ответ @ rijin.

0 голосов
/ 27 декабря 2018

Кажется, что переменная object тоже не определена.Попробуйте следующий код:

if(
    typeof object === 'undefined' ||
    typeof object.data === 'undefined' ||
    typeof object.data.items[1] === 'undefined')
{
    break;  
}
else
{
    console.log("Defined");         
}
0 голосов
/ 27 декабря 2018
if(!_.get(object,['data','items',1]))
{
    break;  
}
0 голосов
/ 27 декабря 2018

проверьте, что и object, и object.data определены первыми.

if(object && object.data && typeof object.data.items[1] === 'undefined')
{
    break;  
}
else
{
    console.log("Defined");         
}

или

if(!object || !object.data || typeof object.data.items[1] === 'undefined')
    {
        break;  
    }
    else
    {
        console.log("Defined");         
    }
...