JavaScript တွင် id အလိုက် element ကိုပြောင်းလဲခြင်း
arr ကိန်ရှင်ထဲတွင် object အခင်းအကျင်းတစ်ခု
ရှိသည်ဆိုပါစို့:
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',
},
];
ကျွန်ုပ်တို့သည် အခင်းအကျင်းထဲမှ element တစ်ခုခုကို ပြောင်းလဲလိုသည်ဆိုပါစို့။ အသစ်ထည့်မည့်အချက်အလက်များကို ကိန်ရှင်ထဲတွင် သိမ်းထားပါ။ ဥပမာအားဖြင့် အောက်ပါအတိုင်း:
let data = {
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21 !',
prop2: 'value22 !',
prop3: 'value23 !',
};
ဖော်ပြထားသော object တွင် id သည်
အခင်းအကျင်းရှိ ဒုတိယမြောက် element ၏ id နှင့်
တူညီပြီး၊ ဂုဏ်သတ္တိများ၏တန်ဖိုးများမှာ ကွဲပြားနေသည်။
တစ်နည်းအားဖြင့် ဆိုရသော်
data ထဲရှိ id ဂုဏ်သတ္တိတွင် ကျွန်ုပ်တို့
ပြောင်းလဲလိုသော အခင်းအကျင်းရှိ element ၏
id ကိုသိမ်းထားသည်။
ဤပြောင်းလဲမှုကို လုပ်ဆောင်ကြပါစို့။ ထိုသို့ပြုလုပ်ရန်
loop တစ်ခုဖြင့် အခင်းအကျင်းရှိ element များကို
လှည့်ပတ်ဖြတ်သန်းပြီး၊ id သည် ရှာဖွေနေသော
id နှင့် တူညီပါက element ကိုအစားထိုးမည်၊
တူညီမှုမရှိပါက element ကို မပြောင်းလဲဘဲထားရှိမည်:
let res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
Ternary operator ကိုအသုံးပြု၍ code ကိုတိုတောင်းအောင် လုပ်နိုင်သည်:
let res = arr.map(elem => elem.id === data.id ? data : elem);
ကိန်ရှင်ထဲတွင် အခင်းအကျင်း element ၏ id
ကိုသိမ်းထားသည်ဆိုပါစို့။ ၎င်းအခင်းအကျင်း element
ကိုပြောင်းလဲမည့် ခလုတ်တစ်ခုကို ဖန်တီးပါ။