squadbrodyaga
@squadbrodyaga
Татарский богатырь

Как остановить цикл map() по условию?

Здравствуйте, как можно остановить цикл map()?
В моём случае я вывожу элементы на страницу и мне нужно, чтобы
цикл перестал работать после того, как он выведет нужный мне элемент
Пример кода: https://codepen.io/squadcoder/pen/KKNvBbv?editors=1010
  • Вопрос задан
  • 87 просмотров
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Ткнуть в доку лучше готового к копипасте ответа
Остановить итерацию в методе map никак.
Можно найти индекс нужного элемента с помощью метода findIndex() и обрезать массив относительно него.
Только стоит учесть, что искомого элемента может не быть в массиве, и тогда findIndex() вернет -1
const arr = [
  {value: 1},
  {value: 2},
  {value: 3},
  {value: 4, active: true},
  {value: 0},
  {value: 0},
  {value: 0},
  {value: 0},
  {value: 0},
]

const activeIndex = arr.findIndex(item => item.active);
wrapper.innerHTML = (activeIndex === -1 ? arr : arr.slice(0, activeIndex + 3)).map(item => `
  <div class="block ${item.active ? "active" : ""}">
    ${item.value}
  </div>
`).join("")
Ответ написан
WblCHA
@WblCHA
Нет. Никак. Если нужен выход из цикла до полного прохода, нужно использовать фор.
Впрочем, судя по всему ты хочешь сделать пагинатор, поэтому лучше загугли как их делают другие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $