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