Hey Elwynn,
Here's a couple of hints on how to optimize comparison with JavaScript. (Following advices may apply to several languages)
Use IF statements when :
- You have 2 or less possibilities to test
- Your datas can be separated into ranges
if (value == 0){
return result0;
} else if (value == 1){
return result1;
} else if (value == 2){
return result2;
} else if (value == 3){
return result3;
} else if (value == 4){
return result4;
} else if (value == 5){
return result5;
} else if (value == 6){
return result6;
} else if (value == 7){
return result7;
} else if (value == 8){
return result8;
} else if (value == 9){
return result9;
} else {
return result10;
}
if (value < 6){
if (value < 3){
if (value == 0){
return result0;
} else if (value == 1){
return result1;
} else {
return result2;
}
} else {
if (value == 3){
return result3;
} else if (value == 4){
return result4;
} else {
return result5;
}
}
} else {
if (value < 8){
if (value == 6){
return result6;
} else {
return result7;
}
} else {
if (value == 8){
return result8;
} else if (value == 9){
return result9;
} else {
return result10;
}
}
}
Another way to do comparison is to use switch statement as you do.
To make switch statement better, you may consider ordering your cases based on the frequency of each value.
You may nest switch statement inside of if statement. Something like :
if (value < 6){
switch(value){
case 0:
return result0;
case 1:
return result1;
case 2:
return result2;
case 3:
return result3;
case 4:
return result4;
case 5:
return result5;
}
} else {
switch(value){
case 6:
return result6;
case 7:
return result7;
case 8:
return result8;
case 9:
return result9;
default:
return result10;
}
}
When you have a huge amount of possibilities, forget switch and if. The weapon of choice is : Array Lookup!
Imagine you want to get the extension table name for a CI family.
You can store those informations in an array and access it directly.
var family_extName = [['Hardware','ext_hardware'],['software','ext_software']];
var extName = items[value][1];
If you go with Array Lookup, let me suggest to store the array in a dataset outside of your process.
Have fun.