2017-07-18 160 views
-3

我正在處理此函數以查看某個數字是否在數組數組中。如果是的話,它應該返回true否則爲false。 我有這段代碼,這是完美的工作。但是,你可以把它簡化甚至更多(例如避免使用for循環,而使用的forEach?)for each而不是for循環

感謝

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

這看起來不像我的功能編程。 – jsheeran

+0

'array.includes(number)' – zerkms

+0

很多方法可以做同樣的事情 –

回答

-2
// 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 
     } 
    } 
+0

'未捕獲的ReferenceError:forEach沒有定義' – Quentin

+0

我犯了一個錯誤,我改了它 –

+2

這是一個偉大的貨物崇拜編程示例。 – zerkms

1

東西語義上是相似的代碼和「看上去功能」可能成爲:

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

確實沒有理由使用Array.prototype.forEach。說實話,在「真正實用的風格」中,Array.prototype.forEach幾乎從不使用(因爲它的目的是產生副作用,而這正是你選擇FP時要避免的)。

參考文獻:

+0

榮譽提及:'Array.prototype.find' – naomik