2015-02-11 69 views

回答

4

你可以使用過濾器:如果你想堅持太大的功能,那麼你可以使用

function tooSmall(element){ 
    return element < 10 
} 

[12, 5, 8, 130, 44].filter(tooSmall) // gives [5, 8] 

[12, 5, 8, 130, 44].filter(tooSmall)[0] // gives the first element ie 5 

function not(fn) { 
    return function(){ 
     return !fn.apply({},arguments) 
    } 
} 

[12, 5, 8, 130, 44].filter(not(isBigEnough)) // [5, 8] 
+0

我想獲得保存過濾器檢查的第一個元素。 – URL87 2015-02-11 13:46:12

1

我與其他一致您想要使用過濾器的答案/評論。不過,我在另一方面以不同的方式解釋你的問題。我如何解釋你所要求的是,一旦你已經過濾到bigEnough你怎麼能再過濾到而不是夠大。

一個答案,這是使用下劃線的_.difference方法:

var entireArray = [12, 5, 8, 130, 44]; 
var bigEnoughVals = entireArray.filter(isBigEnough); 
var tooSmallVals = _.difference(entireArray, bigEnoughVals); 

function isBigEnough(element, index, array) { 
    return element >= 10; 
} 

http://underscorejs.org/#difference