2015-02-11 2 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

Я хочу получить 1-й элемент, который удерживает проверку фильтра. – URL87

1

Я согласен с другими ответы/комментарии, которые вы хотите использовать. Однако я интерпретирую ваш вопрос по-другому в другом аспекте. Как я интерпретирую то, что вы просите, после того, как вы отфильтровали до bigEnough, как вы можете затем фильтровать до , а не достаточно большой.

Один ответ на это было бы использовать метод _.difference Underscore в:

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

Смежные вопросы