我的问题是这个。假设我有一个名为A
的数组,我只希望根据条件进行某些操作。什么更有效:
I)
A.forEach(x => {
if (condition1) {
//do stuff1
}
else if (condition2) {
//do stuff2
}
else if (condition3) {
//do stuff3
}
});
或
II)
if (condition1) {
A.forEach(x => {
//do stuff1}
)}
}
else if (condition2) {
A.forEach(x => {
//do stuff2}
)}
}
else if (condition3) {
A.forEach(x => {
//do stuff3}
)}
}
还是有更好的方式去做我以后的事情?谢谢!
答案 0 :(得分:1)
首先测试条件,然后调用相关的forEach
。当然,假设条件与A中的特定指数无关。如果条件的真实性取决于指数,那么你必须评估forEach
即。答案取决于conditionN
答案 1 :(得分:1)
根据所提供的信息,无法确定是否有更高效的算法。
您的第二个选项仅检查条件1,2和3一次,但选项一检查它们n次。选项II看起来更像代码,但速度更快。
答案 2 :(得分:0)
使用Switch Statement,我的建议更好。
请在此处阅读:Performance of if-else, switch or map based conditioning
A.forEach(x => {
//set values for condition
case condition1:
//your code
break;
case condition2:
//your code
break;
case condition3:
//your code
break;
}