Разберёмся
Выбирайте конструкцию по результату: преобразование, отбор, свёртка, поиск, или полный контроль цикла с break/await.
Подробности
map — новый массив значений;
filter — отбор;
reduce — свёртка в одно значение;
some/every — проверка условия;
find/findIndex — один элемент;
for...of / индексный for — break, continue, последовательный await;
forEach — только синхронные побочные эффекты: промисы не ждут, рано остановить нельзя.
Не смешивайте: forEach + async без осторожности часто даёт «тихие» баги.
Итог
Методы массива — декларативно; for/for...of — когда нужен контроль потока.