Computed Keys
Take for example, this script using ES5:
function obj(x, y) { z = {}; z[x] = y; return z; }
If you call the function obj("weed", "sativa")
you will return { weed: "sativa" }
However, you cannot apply more than one key simultaneously in this way, you have to do it for every key:
function obj(w, x, y, z) { v = {}; v[w] = x; v[y] = z; return v; }
As of ES6, you can use computed keys. What does this mean?
Instead of that, you can just do this:
function obj(x, y) { return { [x]: y }}
It may not look much smaller, but it means you can use multiple dynamic keys, like so:
function obj(w, x, y, z) { return { [w]: x, [y]: z }}
So now, doing obj("weed", "sativa", "thc", "40%")
will return { weed: "sativa", thc: "40%" }