Aas*_*han 2 javascript if-statement conditional-statements
我有多个条件要检查。我必须根据条件添加图标,然后我需要根据其他一些条件更改背景颜色。我正在使用 if 语句。这是我的代码。
JSON:
{
"date": "2017-05-12",
"a": false,
"b": true,
"c": true,
"d": false,
"status": "active"
}
Run Code Online (Sandbox Code Playgroud)
Javascript:
if (date != -1) {
//do something
if (a) {
//Add icon a
}
if (b) {
//Add icon b
}
if (c) {
//Add icon c
}
if (d) {
//Add icon d
}
}
if(status == "active"){
//Background Green
}
else if (status == "onhold"){
//Background Yellow
}
else if (status == "inactive"){
//Background Red
}
else{
//Backgeound Grey
}
Run Code Online (Sandbox Code Playgroud)
我如何简化它?
你的前半部分代码看起来不错。对于代码的后半部分,您应该使用 switch 语句。这些替换了您正在使用的 if-else 语句,并决定在发生某些“情况”时要做什么。例如:
switch(status) {
case 'active':
//background green
break;
case 'onhold':
//background yellow
break;
case 'inactive':
//background red
break;
default:
//background grey
break;
}
Run Code Online (Sandbox Code Playgroud)
我的想法是\xef\xbc\x9a
\n\nvar icons = {\n a: 'a.png',\n b: 'b.png',\n c: 'c.png',\n d: 'd.png',\n}\n\nif (date != -1) {\n Object.keys(icons).forEach(function(key) {\n if (data[key]) {\n //Add icon icons[key]\n }\n });\n}\n\nvar statusColors = {\n active: 'Green',\n onhold: 'Yellow',\n inactive: 'Grey',\n}\n\n//Background statusColors[status]\nRun Code Online (Sandbox Code Playgroud)\n