Тағйир додани унсурҳои массив ба таври иммутабел дар JavaScript

Ҳоло биёед тағйир додани унсурҳои массив ба таври иммутабелро омӯзем. Бигзор барои мисол мо массиви зеринро дошта бошем:

javascriptlet arr = [1, 2, 3, 4, 5];

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

javascriptlet ind = 3;

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

javascriptlet copy = Object.assign([], arr);
copy[ind] = '!';
let res = copy;

Акнун аз равиши дуюм истифода барем:

javascriptlet res = [
  ...arr.slice(0, ind),
  '!',
  ...arr.slice(ind + 1)
];
Задание 1

Тугмае созед, ки пахш кардани он боиси тағйир ёфтани унсури массив шавад. Бигзор рақами унсури барои тағйир додан дар тағйирёбанда нигоҳ дошта шавад.