2012-11-19 38 views
3

我有以下功能更大:返回的數組元素不是數字

function isBigEnough(element, index, array) { 
  return (element >= 10); 
} 
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); 
// filtered is [12, 130, 44] 

我怎樣才能返回了比較大的值(或等於)比其他10的數?例如,array.filter(isBigEnough(15))會給我44, 130

+0

http://stackoverflow.com/q/2722159/ 1176601 – Aprillion

+1

_「我也想把循環放入函數中_ _ - 你是什麼意思?如果將它用作'filter()'的回調函數,將循環放入'isBigEnough()'函數是沒有意義的。 – nnnnnn

+0

對不起,我的英文意思是完全不同的東西。經過審查,我刪除了這句話 –

回答

15

函數是JS一等公民,因此可以製造出返回另一個函數的函數:

function isBigEnough(value) { 
    return function(element, index, array) { 
    return (element >= value); 
    } 
} 
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough(10)); 
+0

很好的回答... –