Mengubah Satu Sifat Mengikut id dalam JavaScript

Anda mungkin perlu mengubah bukan keseluruhan objek, tetapi sifat tertentu. Mari kita lihat bagaimana ia dilakukan.

Katakan dalam pembolehubah arr terdapat array objek:

javascriptlet arr = [
  {
    id: 'GYi9GauC4gBF1e2SixDvu',
    prop1: 'value11',
    prop2: 'value12',
    prop3: 'value13',
  },
  {
    id: 'IWSpfBPSV3SXgRF87uO74',
    prop1: 'value21',
    prop2: 'value22',
    prop3: 'value23',
  },
  {
    id: 'JAmjRlfQT8rLTm5tG2m1L',
    prop1: 'value31',
    prop2: 'value32',
    prop3: 'value33',
  },
];

Katakan dalam pembolehubah disimpan id elemen, nama sifat untuk diubah dan nilai baru sifat:

javascriptlet id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';

Untuk menyelesaikan masalah ini, adalah mudah untuk menggunakan destructuring dan computed property names:

javascriptlet res = arr.map(elem => {
  if (elem.id === id) {
    return {...elem, [prop]: value};
  } else {
    return elem;
  }
});
Задание 1

Diberi pembolehubah berikut:

javascriptlet id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';

Buatkan butang, yang apabila ditekan akan mengambil elemen array dengan id yang ditentukan, di dalamnya akan diambil sifat dengan nama yang ditentukan dan pada akhir nilai sifat tersebut akan ditambahkan tanda '!'.

Задание 2

Katakan diberikan dua pembolehubah dengan nama sifat:

javascriptlet id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';

Ubahsuai tugas sebelumnya supaya perubahan dilakukan sekaligus untuk dua sifat yang ditentukan apabila diklik.

Задание 3

Ubahsuai penyelesaian yang diberikan dalam teori melalui penyalinan objek menggunakan Object.assign.