В С# мы имеем 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 время выполнения.