Начиная с ответа Аггатона , эта функция на самом деле возвращает искомый элемент (или null
, если не найден), учитывая функции array
и callback
, которые возвращают истинное значение для «правильного» элемента:
function findElement(array, callback) {
var elem;
return array.some(function(e) {
if (callback(e)) {
elem = e;
return true;
}
}) ? elem : null;
});
Просто помните, что это не работает на IE8-, так как не поддерживает some
. Может быть предоставлен polyfill, в качестве альтернативы всегда есть классический цикл for
:
function findElement(array, callback) {
for (var i = 0; i < array.length; i++)
if (callback(array[i])) return array[i];
return null;
});
Это на самом деле быстрее и компактнее. Но если вы не хотите изобретать велосипед, я предлагаю использовать служебную библиотеку, например, подчеркивание или lodash.