Ҳисобкунаки хосиятҳо дар JavaScript

Ҳангоми эълони объект номҳои хосиятҳои он метавонанд аз тағйирёбандаҳо гирифта шаванд. Чунин хосиятҳо ҳисобкунакӣ номгузорӣ мешаванд. Биёед бубинем, ки ин чӣ тавр анҷом дода мешавад. Бигзор мо объекти зеринро дошта бошем:

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

Бигзор номи ягон хосият дар тағйирёбанда нигоҳ дошта шавад:

javascriptlet key = 'a';

Биёед чунон кунем, ки ба ҷои номи хосият қимате аз тағйирёбандаи мо гирифта шавад. Барои ин тағйирёбандаро бояд дар қавсҳои квадратӣ гирифт:

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

Ҳангоми эълони хосиятҳои ҳисобкунакӣ метавон баъзе рамзро иҷро кард. Мисол:

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

Дар рамзи зерин калид бояд аз тағйирёбанда гирифта мешуд. Хатои суратгирифтаро ислоҳ кунед:

javascriptlet key = 'x';

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

Объект дода шудааст:

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

Тағйирёбандаҳо дода шудаанд:

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

Чунон кунед, ки калидҳои объект аз ин тағйирёбандаҳо гирифта шаванд.