function findFirstMatchingResult(arr, val){
for(let i = 0, len = arr.length; i < len; i++){
const result = arr[i]();
if(result === val){
return true;
}
}
return false;
}
// if you really want to make it generic, you could do the following:
function findFirstMatchingResult(arr, val){
return function(...params){
for(let i = 0, len = arr.length; i < len; i++){
const result = arr[i].apply(null, params[i]);
if(result === val){
return true;
}
}
return false;
}
}
findFirstMatchingResult([
function(str){
return str.length;
}
])([
'hello'
]);
Обобщенная версия (у функций могут быть аргументы) определенно немного громоздка, когда нужно передавать массив для каждой функции, но это хорошая отправная точка. Это также было бы только для примитивов. Так как === не будет работать для массива, объектов и т. Д.