Как правильно сделать функцию обновить объект в массиве?
есть два масива обьектов. Нужно функцию которая будет принимать масив обьектов(initialArray), искать по айдишке(keyToFind) нужний обьект и к свойству(keyValueToFind) присвоить новое значение(patch)
type Users = {
id:number;
name:string;
passExam:boolean
}
type Posts = {
id:number;
body:string;
rate:number
}
function updateObjectInArray<T>(
initialArray: T[],
keyToFind:keyof T,
keyValueToFind:keyof T,
patch:typeof T[keyValueToFind]) {
return initialArray.map(obj => obj.id == keyToFind? {...obj, keyValueToFind: patch}: obj)
}
updateObjectInArray<Users>(arr1, 3, 'name', 'Alex')//сменит имья в обьекте с id3
updateObjectInArray<Posts>(arr2, 2, 'rate', 34) // сменит свойство rate на 34 в обьекте с id==2