如何简化多个if语句javascript?

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)

我如何简化它?

Roa*_*ars 7

你的前半部分代码看起来不错。对于代码的后半部分,您应该使用 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)


zsw*_*ang 6

我的想法是\xef\xbc\x9a

\n\n
var 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]\n
Run Code Online (Sandbox Code Playgroud)\n