В С# мы имеем Enumerable.First(predicate)
. Учитывая этот код JavaScript:
function process() {
var firstMatch = ['a', 'b', 'c'].filter(function(e) {
return applyConditions(e);
}).shift();
if(!firstMatch) {
return;
}
// do something else
}
function applyConditions(element) {
var min = 97;
var max = 122;
var random = Math.floor(Math.random() * (max - min + 1) + min);
return element === String.fromCharCode(random);
}
кроме forEach
, используя цикл, используя несколько или операторов или неявно вызывающий some(predicate)
, есть ли более разумный способ найти firstMatch
? Предпочтительно функция JavaScript (что-то вроде filterFirst(pedicate)
), которая коротко замыкается в первом совпадении, напоминающем реализацию С# Enumerable.First()
?
FWIW, я нацелен на node.js/io.js время выполнения.