JavaScript да элементни id буйича ўзгартириш
Ўзгартувчида arr объектлар
массиви ётсин:
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',
},
];
Фараз қилайлик, биз массивнинг қандайдир бир элементини ўзгартирмоқчимиз. Янги маълумотлар ўзгартувчида сақлансин, масалан, мана булар:
let data = {
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21 !',
prop2: 'value22 !',
prop3: 'value23 !',
};
Келтирилган объектда id массивнинг
иккинчи элементанинг idсига мос келади,
хоссаларнинг қийматлари esa бошқача. Бошқа сўзлар
билан айтганда, data да id хоссасида
биз ўзгартирмоқчи бўлган массив элементининг
idси сақланган.
Келинг, бу ўзгаришни амалга оширайлик. Бунинг учун
массив элементларини цикл билан қайталаймиз
ва агар id изланаётган idга мос келса, элементни
алмаштирамиз, агар мос келмаса, элементни
ўзгартирмай қолдирамиз:
let res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
Кодни қисқартириш мумкин, тернар операторидан фойдаланиб:
let res = arr.map(elem => elem.id === data.id ? data : elem);
Фараз қилайлик, ўзгартувчида массив элементининг
idси сақланган. Тугма ясаинг, уни босганда
мос келувчи массив элементи ўзгартирилсин.