gpt4 book ai didi

javascript - else if 的多个条件的正确代码

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:38 25 4
gpt4 key购买 nike

您好,我在这段代码中遇到了困难,我认为我的 if else 条件是错误的。

当您运行该程序时,如果用户没有输入任何内容,它会发送“list-group-item-danger”,这是第一个 if 语句,然后如果用户同时输入 NAME 和 PLACE,它会发送“list-group-item-success”。两者都是正确的。

if the user input at least one input (NAME or PLACE) it sends 'list-group-item-success' also which is wrong, because it doesn't satisfy the condition on the 2nd if statement (PLACE and(&&) NAME), it should be on the last statement which it sends 'list-group-item-warning'

var obj = {};
db.all("SELECT * FROM f41 WHERE id = ?",[id], function(err,rows){
if((rows[0].NAME == null || rows[0].NAME == '') && (rows[0].PLACE == null || rows[0].PLACE == ''))
{
obj.f41='list-group-item-danger';
}
else if((rows[0].NAME != null || rows[0].NAME != '') && (rows[0].PLACE != null || rows[0].PLACE != ''))
{
obj.f41='list-group-item-success';
}
else
{
obj.f41='list-group-item-warning';
}
res.send(obj);
});

最佳答案

根据我的理解,问题在这里:

(rows[0].NAME != null || rows[0].NAME != '')

如果row[0].NAMEnull,则它不等于"",反之亦然。因此它将返回 true。

你可以试试

!(rows[0].NAME == null || rows[0].NAME === '')

您还可以尝试创建一个utils函数isEmpty

var obj = {};
db.all("SELECT * FROM f41 WHERE id = ?", [id], function(err, rows) {
if (isEmpty(rows[0].NAME) && isEmpty(rows[0].PLACE)) {
obj.f41 = 'list-group-item-danger';
}
else if (!isEmpty(rows[0].NAME) && !isEmpty(rows[0].PLACE)) {
obj.f41 = 'list-group-item-success';
} else {
obj.f41 = 'list-group-item-warning';
}
res.send(obj);
});

function isEmpty(v){
return v === null || v.toString().trim().length === 0
}

关于javascript - else if 的多个条件的正确代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42524782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com