Проверка на ноль не работает для данных AJAX JSON - PullRequest
0 голосов
/ 24 октября 2018

Я получаю данные от вызова ajax, например

[{"_id":{"$oid":"5bd00e99d2ccda119c0032da"},"AllotmentsDetails":null}]

Я сравниваю их для нулевого значения, например

var allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (allotmentDetailsArray.length == 0 || allotmentDetailsArray == null)
{
    ////
}

Это не происходит, если условие ... Пожалуйста, помогите!!!

Ответы [ 5 ]

0 голосов
/ 24 октября 2018

Сначала вы должны проверить ноль или не ноль.если значение не ноль, проверьте длину.

Пожалуйста, попробуйте.

//Ex:1
var data= [{"_id":{"$oid":"5bd00e99d2ccda119c0032da"},"AllotmentsDetails":null}];

var allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (allotmentDetailsArray == null)
{
    alert(allotmentDetailsArray);
}
else if(allotmentDetailsArray.length == 0)
{
    alert(allotmentDetailsArray.length);
}
//or
if (allotmentDetailsArray == null ||allotmentDetailsArray.length == 0 )
{
alert(allotmentDetailsArray);
}

//Ex:2
var data= [{"_id":{"$oid":"5bd00e99d2ccda119c0032da"},"AllotmentsDetails":""}];

 allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (allotmentDetailsArray == null)
{
    alert(allotmentDetailsArray);
}
else if(allotmentDetailsArray.length == 0)
{
    alert(allotmentDetailsArray.length);
}
0 голосов
/ 24 октября 2018

Вы должны проверить против null, прежде чем пытаться получить доступ к object, в своем блоке if вы пытаетесь вызвать .length для null объекта.

Вы можете сделатьэто выглядит так:

if (!allotmentDetailsArray || allotmentDetailsArray.length == 0)
{
    ////
}

Где !allotmentDetailsArray - сокращенное выражение для allotmentDetailsArray == null, которое проверяет, что allotmentDetailsArray равно undefined или null.

Так что здесь второечасть блока if проверяется, только когда allotmentDetailsArray не null.

0 голосов
/ 24 октября 2018

Вы можете просто проверить тип:

var allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (typeof allotmentDetailsArray !== "undefined")
{
  // Var is not null
}
0 голосов
/ 24 октября 2018

Вы не можете проверить длину нулевого значения.Однако вы можете проверить нулевое значение и длину массива с помощью этого кода.

if (!allotmentDetailsArray) {
  // null check here. you cannot check array length here since it's a null value
} else {
  // if you want to check array length 
  if (allotmentDetailsArray.length === 0 ) {
    // check here
  }
}
0 голосов
/ 24 октября 2018

Вы должны сначала проверить нулевое значение, а затем проверить длину

if (allotmentDetailsArray == null || allotmentDetailsArray.length == 0)
{
      ////
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...