Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查对象属性值是否为false_Javascript_Arrays_Object_If Statement - Fatal编程技术网

Javascript 检查对象属性值是否为false

Javascript 检查对象属性值是否为false,javascript,arrays,object,if-statement,Javascript,Arrays,Object,If Statement,我似乎找不到如何检查对象中的属性值是否为false的解释。我有一段代码,我试图检查属性“active”是否为false,但只有类型的数据[I].active===“undefined部分有效 function createHTML(data) { var myTable = document.getElementById('list'); for(var i=0; i<data.length; i++) { var row = myTable.insertRow();

我似乎找不到如何检查对象中的属性值是否为false的解释。我有一段代码,我试图检查属性“active”是否为false,但只有
类型的数据[I].active===“undefined
部分有效

function createHTML(data) {
var myTable = document.getElementById('list');    
for(var i=0; i<data.length; i++) {
    var row = myTable.insertRow();
    for (var key in data[i]) {                
            var cell = row.insertCell();                
            if (data[i].hasOwnProperty(key) ) {                    
                cell.innerHTML = data[i][key];                    
                    if(typeof data[i].active === false || typeof 
                       data[i].active ==='undefined')  {
                        cell.innerHTML+= "<span class='eye'><i class='fa fa-
                        eye-slash'></i></span>";                             
                    } 
                }
            }  
        }
函数createHTML(数据){
var myTable=document.getElementById('list');
对于(var i=0;i使用逻辑not运算符:

if (!data[i].active) {
  // data[i].active is false, 0, undefined, null
}
如果其单个操作数无法转换为true,则返回false;否则,返回true


null
undefined
0
'
false
if
语句中被评估为false

在您的情况下,我们可以通过以下方式解决您的问题:

数据[i]是否处于活动状态
a
false

要提高可读性,可以创建帮助器函数:

函数isActive(item){return item&&!!item.active;}
函数isNotActive(item){return!isActive(item);}
现在,您可以更改代码:

if(
数据类型[i]。活动===false | |
数据类型[i]。活动===“未定义”
)  {}
if(isNotActive(data[i]){}

如果只想检查false,而不是所有的false值,如null、undefined、0等,则使用==(三重等于)

所以你的代码变成了

if(data[i].active === false)  {
   cell.innerHTML+= "<span class='eye'><i class='fa fa-
   eye-slash'></i></span>";                             
 } 
if(数据[i].active==false){
cell.innerHTML+=“”;
}