Javascript效率 - ' forEach'多个“如果”或“如果只允许' forEach'

时间:2018-03-02 03:11:20

标签: javascript arrays performance foreach conditional

我的问题是这个。假设我有一个名为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}
  )}
}

还是有更好的方式去做我以后的事情?谢谢!

3 个答案:

答案 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;                                                                
}