Вопрос проверяет понимание механизма итерации массива и передачи индекса в колбэк.
Индекс доступен напрямую из счётчика цикла, используемого при обходе массива. Его нужно передать вторым аргументом в колбэк. Это полностью повторяет поведение стандартного метода some. Такой подход прост и нагляден. Он не требует дополнительных структур данных.
При ручной реализации some индекс элемента всегда известен, так как перебор массива выполняется через цикл.
Использовать индекс цикла
Переменная цикла содержит текущий индекс элемента.
Передать индекс вторым аргументом
Колбэк вызывается с тем же набором аргументов, что и в стандартной реализации.
function some<T>(
array: T[],
callback: (value: T, index: number) => boolean
): boolean {
for (let i = 0; i < array.length; i++) {
if (callback(array[i], i)) {
return true
}
}
return false
}
логика, зависящая от позиции элемента
доступ к соседним элементам
отладка и логирование
Индекс элемента в кастомной реализации some берётся из цикла и передаётся в колбэк вторым аргументом, полностью повторяя стандартное поведение.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию