const organisations = { fetchingData : false , error : null, data : { totalCount : 68, data : [ { indID : 12345, name : 'abc'}, { indID: 12, name : 'xyz'}] } } const checkedBy = { data : { name : 'PQ', }, indID : 12345, } Me gustaría reemplazar la propiedad de nombre dentro del objeto de la organisations por la propiedad de nombre del objeto comprobado por cuando checkedBy coincide con la matriz de la matriz de datos del objeto de la organisations
Creo que esta es la función de mapeador que quieres.
let org = { fetchingData : false , error : null, data : { totalCount : 68, data : [ { indID : 12345, name : 'abc'}, { indID: 12, name : 'xyz'}] } } const checkedBy = { data : { name : 'PQ', }, indID : 12345, } console.log("Before :: \n", org) org.data.data = org.data.data.map(x => { if(x.indID === checkedBy.indID){ x.name = checkedBy.data.name } return x; }) console.log("After :: \n", org);Puede lograr fácilmente el resultado usando find
const organisations = { fetchingData: false, error: null, data: { totalCount: 68, data: [ { indID: 12345, name: "abc" }, { indID: 12, name: "xyz" }, ], }, }; const checkedBy = { data: { name: "PQ", }, indID: 12345, }; const obj = organisations.data.data.find((o) => o.indID === checkedBy.indID); obj.name = checkedBy.data.name; console.log(organisations); /* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }puede mutar las organisations.data.data de la siguiente manera.
const organisations = { fetchingData: false, error: null, data: { totalCount: 68, data: [{ indID: 12345, name: 'abc' }, { indID: 12, name: 'xyz' } ] } } const checkedBy = { data: { name: 'PQ', }, indID: 12345, } //replace name organisations.data.data = organisations.data.data.map(org => { if (org.indID === checkedBy.indID) { return { ...org, // replace name with checked by name name: checkedBy.data.name } } return org }) console.log(organisations.data.data)