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сине дал келет,
бирок касиеттеринин маанилери - башкача. Башкача айтканда,
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си
сакталсын. Басылганда тиешелүү
массив элементин өзгөртө турган баскычты
жасаңыз.