tengo este codigo:
function logInfos(user = {}) { const redactedUser = { firstName: "<REDACTED>", lastName: "<REDACTED>", address: { city: "<REDACTED>", country: "<REDACTED>", }, }; const { firstName, lastName, address: { city, country }, } = user; console.log("partie user", firstName); console.log("partie user", lastName); const newUser = { ...user, address: { ...user.address, }, }; console.log("partie newuser", newUser); console.log(`${newUser.firstName} ${newUser.lastName} lives in ${newUser.address.city}, ${newUser.address.country}.`); } ¿Cómo puedo reemplazar el valor undefined del objeto de user pasado como argumento y usar el valor predeterminado del objeto redactedUser en su lugar?
function compareObj(defaultObj, targetObj) { for(let key in defaultObj) { if(!Array.isArray(defaultObj[key]) && defaultObj[key] !== null && typeof defaultObj[key] === "object") { targetObj[key] = {}; copyObj(defaultObj[key], targetObj[key]); } else { if(!targetObj[key]) targetObj[key] = defaultObj[key]; } }}
compareObj(usuarioredactado, usuario);
Puede colocar esta función de código dentro de logInfos. Lo que hace es iterar a través de todas las propiedades del objeto predeterminado y verifica si la propiedad existe en el objeto de destino. En caso de que la propiedad no exista en el objeto de destino, se creará la misma propiedad en el objeto de destino y se copiará el valor.