Javascript 检查对象属性值是否为false
我似乎找不到如何检查对象中的属性值是否为false的解释。我有一段代码,我试图检查属性“active”是否为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();
类型的数据[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]是否处于活动状态
afalse
值
要提高可读性,可以创建帮助器函数:
函数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+=“”;
}