@danilr

Как правильно упростить запись в блоке for?

У меня в зависимости от number надо выполнять один и тот же код в цикле, но с разными условием for. Как правильно сократить запись в блоке?
let i;
for( number >=0 ? i=1 : i=-1; number >=0 ? i<number : i>number; number >=0 ? i++ : i--)
/code>
  • Вопрос задан
  • 84 просмотра
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
for(let  i = Math.sign(number) || 1; Math.abs(i) < Math.abs(number); i += Math.sign(number) || 1) {
  // ...
}
Ответ написан
melodyn
@melodyn
Лучше нативная смерть, чем фреймворковая жизнь.
Так просто две функции написать и выбирать одну по условию:
const handlers = {
 positive: (num, data) => {
  for(let i = 1; i < num; i++) {
   // обработка data
  }
 },
 negative: (num, data) => {
  for(let i = -1; i > num; i--) {
   // обработка data
  }
 }
};

const handlerName = number >= 0 ? 'positive' : 'negative';
const handler = handlers[handlerName];
const processedData = handler(num, data);


Если с данными в обоих случаях выполняются одни и те же действия, то можно третим аргументом прокинуть callback.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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