我有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
视为空值?
答案 0 :(得分:2)
您可以将条件更改为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>
答案 1 :(得分:0)
您可以使用逻辑运算符(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>