liqrizz
@liqrizz
лол

Возможно ли писать код без условных операторов?

Часто пишу код с вложенными if. Начал осознавать что это зло. Хотелось бы писать код например сайт, скрипт для анимации, игру шашки что угодно не использую условные операторы (if, ? : , switch )
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 6
Можно, но не нужно)))
let a=2,b = {true:function(){console.log("is true")},false:function(){console.log("is false")}}; 
b[a==2]()
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
{
  const a = Math.random();
  const b = a > 0.5;
  b  ||  console.log(a, 'меньше');
  b  &&  console.log(a, 'больше');
}
Ответ написан
Kozack
@Kozack Куратор тега JavaScript
Если вы пишете что-то в духе
if (condition) {
  if (condition) {
    if (condition) {
      if (condition) {
        if (condition) {
          if (condition) {
            if (condition) {
            }
          }
        }
      }
    }
  }
}


То да, это зло. Но тут проблема не в if и это не значит, что от него нужно отказаться. Нужно уметь правильно работать
Ответ написан
HistoryART
@HistoryART
^Спасибо - отметить ответом
Симпатичный аналог:

let a = 1;
a = a == 2 ? a = 2 : 1
Ответ написан
xmoonlight
@xmoonlight Куратор тега JavaScript
https://sitecoder.blogspot.com
Проблема: Однотипные переменные не являются массивом или объектом.

Решение: Приведите их к нужной унифицированной структуре:
1. Работайте всегда с массивом.
2. Обменивайтесь структурами (массивом или объектом).

Массив (пример): arr=[1,2,3];
Объект (пример): obj={a:1,b:2,c:3};

Это упростит доступ к нужным переменным по индексу элемента или используя циклы или перебирающие методы.

Варианты перебора:
Циклы: for, while, do-while
Перебирающие методы: arr.forEach(), arr.some(), arr.every().

Или используйте промежуточное хранение состояний (+внутренние методы-обработчики get/set смены состояния) нужных объектов через структуру класса: class.
Ответ написан
Вы можете использовать goto для переключения в нужную область выполнения программы, а также try-catch для того, чтобы перехватить ошибку и изменить поток выполнения. Красиво, изящно.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы