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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript效率 - 'forEach'有多个'if'或'if'只允许'forEach'相关的知识,希望对你有一定的参考价值。

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

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

答案

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

即答案取决于conditionN的构成

另一答案

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

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

另一答案

我的建议使用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;                                                                
}

以上是关于Javascript效率 - 'forEach'有多个'if'或'if'只允许'forEach'的主要内容,如果未能解决你的问题,请参考以下文章

给定数组的前缀和数组。 JavaScript,[重复]

21个值得收藏的Javascript技巧

forEach 在 nslaoyutconstraints 中的使用

用forEach函数计算总和? [复制]

使用动态列的 JavaScript 数组排序 [重复]

JavaScript:String 和 Array 上 indexOf 方法的效率差异