JavaScript-da id bo‘yicha bitta xususiyatni o‘zgartirish
Siz butun ob'ektni emas, balki ma'lum bir xususiyatni o‘zgartirishingiz kerak bo‘lishi mumkin. Keling, buni qanday qilishni ko‘rib chiqaylik.
Faraz qilaylik, arr o‘zgaruvchisida
ob'ektlar massivi mavjud:
let 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',
},
];
Faraz qilaylik, o‘zgaruvchilarda elementning id si,
o‘zgartiriladigan xususiyat nomi va xususiyatning yangi qiymati
saqlanadi:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
Muammoni hal qilish uchun destrukturizatsiyadan va hisoblanadigan xususiyat nomlaridan foydalanish qulay:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Quyidagi o‘zgaruvchilar berilgan:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Tugma yarating, unga bosilganda massivning ko‘rsatilgan id ga ega elementi olinadi,
undan ko‘rsatilgan nomdagi xususiyat olinadi va shu xususiyat qiymatining
oxiriga '!' belgisi qo‘shiladi.
Faraz qilaylik, ikkita xususiyat nomli o‘zgaruvchi berilgan:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Oldingi vazifani shunday o‘zgartiringki, bir marta bosishda o‘zgartirishlar ikki ko‘rsatilgan xususiyat uchun bir vaqtning o‘zida bajarilsin.
Nazariyada keltirilgan yechimni Object.assign yordamida
ob'ektni nusxalash orqali qayta yozing.