Как предотвратить JavaScript, если оператор оценивать 0 как пустую строку? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть объект js, в котором есть данные, содержащие числа.Некоторые из них могут быть 0.В этом случае оператор if будет оценивать эти значения как пустые строки.Вот пример:

var dataObj = {
  "one": 13,
  "two": 0,
  "three": 3
}

$.each(dataObj, function (j, k) {
  if(k){
    console.log('Column: '+k);
  }else{
    console.log('Empty');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Мне интересно, как это можно предотвратить?Есть ли способ проверить, является ли значение пустым, но в то же время не рассматривать 0 как пустое значение?

Ответы [ 2 ]

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

Вы можете добавить k==0 с логическим оператором (||) как часть условия, которое будет проходить через условие, когда значение равно 0.

Попробуйте

if(k || k == 0){

var dataObj = {
  "one": 13,
  "two": 0,
  "three": 3
}

$.each(dataObj, function (j, k) {
  if(k || k == 0){
    console.log('Column: '+k);
  }else{
    console.log('Empty');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 12 декабря 2018

вы можете изменить условие на k || k===0 это означает (насколько я знаю) оно будет принимать not-undefined, not-null, not-empty и zero int value как true.

пожалуйста, прокомментируйте, если есть что-нибудь, что я могу сделать, чтобы улучшить ответ ..

не забудьте проверить мой фрагмент

хорошего дня ..

var dataObj = {
  "one": 13,
  "two": 0,
  "three": 3,
  "four": null,
  "five": ''
}

$.each(dataObj, function (j, k) {
  // use 'or' operator
  if(k || k===0){
    console.log('Column: '+k);
  }else{
    console.log('Empty');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...