Javascript效率 - 'forEach'有多个'if'或'if'只允许'forEach'

问题描述 投票:0回答:3

我的问题是这个。假设我有一个名为A的数组,我只希望根据条件进行某些操作。什么更有效:

一世)

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}
  )}
}

还是有更好的方法来做我想要的事情?谢谢!

javascript arrays performance foreach conditional
3个回答
1
投票

首先测试条件,然后调用相关的forEach。当然,假设条件与A中的特定指数无关。如果条件真实性取决于指数,那么你必须评估forEach中的条件

即答案取决于conditionN的构成


1
投票

根据提供的信息,无法确定是否有更高效的算法。

您的第二个选项仅检查条件1,2和3一次,但选项一检查它们n次。选项II看起来更像代码,但速度更快。


0
投票

我的建议使用Switch语句更好。

在这里阅读: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;                                                                
}
© www.soinside.com 2019 - 2024. All rights reserved.