@R0_none
ни ноты без банкноты

Как заменить for на .reduce?

Пытаюсь уменьшить количество строк. Есть код:

for (let i = 0; i < rClon.length; i++) {
    if (rMax === rClon[i]) {
      rClon.splice(i, 1);
      break;
    }
  }

Пытался переделать в такое и на моменте с брейк выдаёт ошибку:

rClon.reduce((rNone, i1) => rMax === i ? rClon.splice(i1, 1); break;);

Надо найти первый элемент rMax в rClon, удалить его и прерваться.
Может, тут не reduce нужно использовать?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Методы .forEach, .map, .reduice и т.п. не прерываемые.
Здесь достаточно .indexOf
const idx = rClon.indexOf(rMax);
if (idx !== -1) {
  rClon.splice(idx, 1);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
const result = rClon.filter(x => rMax !== x));

Но это не совсем то
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы