Начиная от ответа aggaton в это функция , которая на самом деле возвращает элемент хотел (или , null
если не найден), учитывая array
и на callback
функцию , которая возвращает значение truthy для «правильного» элемента:
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.