Javascript 针对else if的多个条件更正代码

Javascript 针对else if的多个条件更正代码,javascript,html,node.js,sqlite,nested-loops,Javascript,Html,Node.js,Sqlite,Nested Loops,嗨,我在这个代码中遇到了困难,我想我的if-else条件是错误的 运行程序时,如果用户未输入任何内容,则发送“列表组项目危险”,这是第一条if语句,如果用户同时输入名称和位置,则发送“列表组项目成功”。两者都是正确的 如果用户输入至少一个输入(名称或地点),则发送 “列表组项目成功”也是错误的,因为它不成功 如果满足第二条if语句(PLACE和(&&&)NAME)上的条件,则 应该在它发送的最后一条语句上 “列表组项目警告” var obj={}; db.all(“从f41中选择*,其中id=

嗨,我在这个代码中遇到了困难,我想我的if-else条件是错误的

运行程序时,如果用户未输入任何内容,则发送“列表组项目危险”,这是第一条if语句,如果用户同时输入名称和位置,则发送“列表组项目成功”。两者都是正确的

如果用户输入至少一个输入(名称或地点),则发送 “列表组项目成功”也是错误的,因为它不成功 如果满足第二条if语句(PLACE和(&&&)NAME)上的条件,则 应该在它发送的最后一条语句上 “列表组项目警告”

var obj={};
db.all(“从f41中选择*,其中id=?”,[id],函数(err,rows){
if((行[0]。名称==null | |行[0]。名称=='')和&(行[0]。位置==null | |行[0]。位置=='')
{
obj.f41='list-group-item-danger';
}
else if((行[0].NAME!=null | |行[0].NAME!=“”)和&(行[0].PLACE!=null | |行[0].PLACE!=“”))
{
obj.f41='list-group-item-success';
}
其他的
{
obj.f41='list-group-item-warning';
}
res.send(obj);

});据我所知,问题在于:

(rows[0].NAME != null || rows[0].NAME != '')
如果
行[0].NAME
null
,则它不等于
,反之亦然。因此,它将回归真实

你可以试试

!(rows[0].NAME == null || rows[0].NAME === '')
您还可以尝试创建utils函数
isEmpty

var obj={};
db.all(“从f41中选择*,其中id=?”,[id],函数(err,行){
if(isEmpty(行[0].NAME)和&isEmpty(行[0].PLACE)){
obj.f41=‘列表组项目危险’;
} 
如果(!isEmpty(行[0].NAME)和&!isEmpty(行[0].PLACE]),则为else{
obj.f41='列表组项目成功';
}否则{
obj.f41='列表组项目警告';
}
res.send(obj);
});
函数为空(v){
返回v==null | | v.toString().trim().length==0
}

据我所知,问题在于:

(rows[0].NAME != null || rows[0].NAME != '')
如果
行[0].NAME
null
,则它不等于
,反之亦然。因此,它将回归真实

你可以试试

!(rows[0].NAME == null || rows[0].NAME === '')
您还可以尝试创建utils函数
isEmpty

var obj={};
db.all(“从f41中选择*,其中id=?”,[id],函数(err,行){
if(isEmpty(行[0].NAME)和&isEmpty(行[0].PLACE)){
obj.f41=‘列表组项目危险’;
} 
如果(!isEmpty(行[0].NAME)和&!isEmpty(行[0].PLACE]),则为else{
obj.f41='列表组项目成功';
}否则{
obj.f41='列表组项目警告';
}
res.send(obj);
});
函数为空(v){
返回v==null | | v.toString().trim().length==0
}

您可以像这样改善您的状况

if(rows[0].NAME && rows[0].PLACE) {
    obj.f41='list-group-item-success';
} else if(!rows[0].NAME && !rows[0].PLACE) {
    obj.f41='list-group-item-danger';
} else {
    obj.f41='list-group-item-warning';
}

你可以像这样改善你的状况

if(rows[0].NAME && rows[0].PLACE) {
    obj.f41='list-group-item-success';
} else if(!rows[0].NAME && !rows[0].PLACE) {
    obj.f41='list-group-item-danger';
} else {
    obj.f41='list-group-item-warning';
}

你的代码段显示错误。你可以添加一个工作代码段吗?你已经编辑了代码,我认为现在应该可以了。你可以添加一个工作代码段吗?你已经编辑了代码,我认为现在应该可以了。注意,在JS
false
0
中falsey@Rajesh我知道,但看看这个问题,我想这是一根绳子。。。。因此,此处不需要考虑0。注意,在JS
false
0
中falsey@Rajesh我知道,但看看这个问题,我认为这是一个字符串。。。。所以这里不需要考虑0