Lasketut ominaisuudet JavaScriptissä

Kun oliota määritellään, sen ominaisuuksien nimet voivat tulla muuttujista. Tällaisia ominaisuuksia kutsutaan lasketuiksi ominaisuuksiksi. Katsotaanpa, miten se tehdään. Oletetaan, että meillä on seuraava olio:

javascriptlet obj = {
  a: 1,
  b: 2,
  c: 3
};

Oletetaan, että jonkin ominaisuuden nimi on tallennettu muuttujaan:

javascriptlet key = 'a';

Tehdään niin, että ominaisuuden nimen sijasta otetaan arvo meidän muuttujastamme. Tätä varten muuttuja tulee sijoittaa hakasulkeisiin:

javascriptlet obj = {
  [key]: 1,
  b: 2,
  c: 3
};

Laskettuja ominaisuuksia määriteltäessä voidaan suorittaa koodia. Esimerkki:

javascriptlet obj = {
  [key + '1']: 1,
  [key + '2']: 2,
  [key + '3']: 3
};
Задание 1

Seuraavassa koodissa avaimen olisi pitänyt tulla muuttujasta. Korjaa tehty virhe:

javascriptlet key = 'x';

let obj = {
  key: 1,
  y: 2,
  z: 3
};
Задание 2

Annettu olio:

javascriptlet obj = {
  x: 1,
  y: 2,
  z: 3
};

Annettu muuttujat:

javascriptlet key1 = 'x';
let key2 = 'y';
let key3 = 'z';

Tee niin, että olion avaimet tulevat näistä muuttujista.