forEach而不是for循环

时间:2017-07-18 08:53:06

标签: foreach functional-programming

我正在处理此函数以查看某个数字是否在数组中。如果是,它应该返回true否则为false。 我有这段代码,完全可以在下面工作。但是,你能不能简化它(例如避免使用for循环而是使用forEach?)

由于

   function findNumber(number){
   for (var i=0;i<array.length;i++){
   if (array[i] === number){
   return true }
   }
   return false
   }

3 个答案:

答案 0 :(得分:3)

在语义上类似于您的代码并且“看起来很实用”的东西可能是:

const findNumber = number => array.includes(number);

确实没有理由使用Array.prototype.forEach。说实话,在“真正的功能风格”中,Array.prototype.forEach几乎从不使用(因为它的目的是产生副作用,这就是你在选择FP时试图避免的)。

参考文献:

答案 1 :(得分:0)

v1 <- c('gender', 'age', 'city', 'education')

}

顺便说一下。我认为简单地使用Array.prototype.indexOf()Array.prototype.includes()方法会更简单,更简单。

答案 2 :(得分:-1)

  // I guess var array is already declared
  function findNumber(number){
     let test = false
     array.forEach(function(nbr){
         if(nbr ==(=) number ){
            test = true
         }    
     })
     if(test == true) { 
         return true
     } else {  
         return false
       }
  }