Установить несколько постоянных значений на основе условного - PullRequest
0 голосов
/ 27 марта 2020

Я хочу установить несколько значений на основе условия. Этот код будет работать:

let a;
let b;

if (fooBar) {
  a = "foo";
  b = "bar";
} else {
  a = "baz";
  b = "Hello world!";
}

Но я пытаюсь придерживаться принципов FP (неизменяемые переменные) и DRY.

Для одной переменной я бы сделал это:

const a = fooBar
  ? "foo"
  : "baz";

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

Ответы [ 3 ]

6 голосов
/ 27 марта 2020

Я бы не сказал ничего плохого в использовании let в целом, однако ответ на ваш вопрос:

const [a, b] = fooBar ? ["foo", "bar"] : ["baz", "Hello world!"]

В этом случае можно использовать деструктуризацию массива. Таким образом, мы создаем переменные для доступа к элементу массива по индексу (a - это # ​​0, b - это # ​​1)

4 голосов
/ 27 марта 2020

Используйте троичный для создания объекта или массива с необходимыми значениями, а затем используйте деструктуризацию, чтобы назначить их:

const fooBar = false

const { a, b } = fooBar ? 
  { a: 'foo', b: 'bar' } 
  : 
  { a: 'baz', b: 'Hello world!' }
  
console.log(a, b)
0 голосов
/ 27 марта 2020

Я не понимаю, почему все так увязли в разрушении. Разве это не работает для вас?

const a  = 1 ? 0 : -1,
      b = 0 ? 3 : -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...