Каков наилучший способ найти элемент массива (не обязательно индекс, но это работает), который соответствует предикату (поэтому я не могу напрямую сравнивать элементы, забудьте indexOf
) , начиная с an index.
Я хочу получить «следующий соответствующий» элемент из массива, начиная с текущей позиции.
Ниже приведена моя текущая реализация:
var currentIndex = 1;
var results = [
{status: 'AWAITING_APPROVAL'}, // Not matched
{status: 'APPROVED'},
{status: 'APPROVED'},
{status: 'APPROVED'},
{status: 'AWAITING_APPROVAL'},
{status: 'APPROVED'},
];
var nextIndex = results
.slice(currentIndex)
.findIndex(function (content) {
return content.status === 'AWAITING_APPROVAL';
});
if (nextIndex !== -1) {
nextIndex += currentIndex;
// Here we can use nextIndex which is 4
console.log(nextIndex);
}
Конечно, я мог бы просто сделать основание c для l oop / ifs, но мне интересно, есть ли лучший способ (возможно, используя loda sh).