tengo una variable de objeto con claves anidadas como esta
const obj = { kitchen: { painting: 100, piano: 1000, signature: "", }, bathroom: { stereo: 220, signature: "", }, signature: "", };quiero crear una función que cambie el valor de la clave "firma" con un nombre tanto en el obj raíz como en cualquier objeto anidado que tenga una clave "firma".
asi que:
function addSignature( obj , name){ }devoluciones
newObj = { kitchen: { painting: 100, piano: 1000, signature: name, }, bathroom: { stereo: 220, signature: name, }, signature: name, };acabo de hacer esto y funciona, pero no sé si es demasiado "hacky"
function addSignature(obj, name) { if (obj.signature !== undefined) { obj.signature = name; } Object.keys(obj).forEach((key) => { if (typeof obj[key] === "object") { addSignature(obj[key], name); } else if (obj[key].signature !== undefined) { obj[key].signature = name; } }); return obj; }