Can I assign multiple variables the same value without having one line per variable/assignment?

Viewed 2395

I am looking for a less verbose way to instantiate multiple variables to the same value. I currently have this:

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;

And I am looking to do something like this:

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

All these variables return undefined. There surely has to be a better way to instantiate multiple variables to the same value? I am using let as these values change over time.

3 Answers

You could destructure your variables as an array as follows, though you need to know the number of elements, and it does require ES6+:

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

You could take a generator which yields the wanted value for a destructuring with an array.

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);

Related