JavaScript හි id මගින් මූලද්රව්යයක් වෙනස් කිරීම
arr යන විචල්යයේ
වස්තු අරාවක් ඇති බවට සිතමු:
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',
},
];
අපට අරාවේ යම් මූලද්රව්යයක් වෙනස් කිරීමට අවශ්ය යැයි සිතමු. නව දත්ත විචල්යයක ගබඩා කර ඇතැයි සිතමු, උදාහරණයක් ලෙස මෙහි දැක්වෙන පරිදි:
javascriptlet data = {
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21 !',
prop2: 'value22 !',
prop3: 'value23 !',
};
දක්වා ඇති වස්තුවේ id යනු
අරාවේ දෙවන මූලද්රව්යයේ id සමඟ ගැලපේ,
නමුත් ගුණාංගවල අගයන් - වෙනස් ය. වෙනත් වචන වලින්
කියතහොත්
data හි id ගුණයේ දී අපට
අප වෙනස් කිරීමට අවශ්ය අරා මූලද්රව්යයේ
id ගබඩා කර ඇත.
අපි මෙම වෙනස් කිරීම සිදු කරමු. මේ සඳහා
අරාවේ මූලද්රව්ය ලූපයක් මගින් පුනරාවර්තනය කරමු
සහ, id සෙවුම් එක සමඟ ගැලපේ නම්,
මූලද්රව්යය ප්රතිස්ථාපනය කරමු, නමුත් ගැලපීම සිදු නොවේ නම්, මූලද්රව්යය
වෙනස් නොකර තබමු:
javascriptlet res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
ටර්නරි මෙහෙයුම්කරු භාවිතයෙන් කේතය සංක්ෂිප්ත කළ හැකිය:
javascriptlet res = arr.map(elem => elem.id === data.id ? data : elem);
අරාවේ මූලද්රව්යයේ id යනු
විචල්යයක ගබඩා කර ඇතැයි සිතමු. බොත්තමක් සාදන්න,
එය එබූ විට
අරාවේ අදාළ මූලද්රව්යය
වෙනස් වනු ඇත.