Могу ли я присвоить нескольким переменным одно и то же значение, не имея по одной строке на переменную / присваивание? - PullRequest
3 голосов
/ 13 марта 2020

Я ищу менее подробный способ создания нескольких переменных для одного и того же значения. В настоящее время у меня есть это:

let a = 0;
let b = 0;
let c = 0;
let d = 0;
let e = 0;
let f = 0;
let g = 0;
let h = 0;
let i = 0;
let j = 0;
let k = 0;
let l = 0;
let m = 0;
let n = 0;
let o = 0;

И я собираюсь сделать что-то вроде этого:

let { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o } = 0;

Все эти переменные возвращают undefined. Там наверняка должен быть лучший способ создания нескольких переменных к одному значению? Я использую let, так как эти значения меняются со временем.

Ответы [ 3 ]

7 голосов
/ 13 марта 2020

Вы можете деструктурировать ваши переменные в виде массива следующим образом, хотя вам нужно знать количество элементов, а для этого требуется ES6 +:

let [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o] = Array(15).fill(0);
5 голосов
/ 13 марта 2020

Вот что я бы сделал.

const [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o] = repeat(0);

console.log(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);

function* repeat(x) {
    while (true) yield x;
}

Смежный вопрос: Как использовать назначение деструктурирования для определения перечислений в ES6?

1 голос
/ 13 марта 2020

Вы можете взять генератор, который выдает искомое значение для деструктуризации с массивом.

function* always(v) {
    while(true) yield v;
}

let [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o] = always(0);

console.log(a);
console.log(o);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...