Jak uvádí většina odpovědí, musíte použít tečkový zápis Chcete-li aktualizovat vložené dokumenty a odpovědět na výše uvedenou otázku, použijte následující pomocnou metodu, která použije rekurzi k převodu daného objektu na jeho tečkovou reprezentaci:
function convertToDotNotation(obj, newObj={}, prefix="") {
for(let key in obj) {
if (typeof obj[key] === "object") {
convertToDotNotation(obj[key], newObj, prefix + key + ".");
} else {
newObj[prefix + key] = obj[key];
}
}
return newObj;
}
let params = {
address: {
city: {
location: {
street: "new street"
}
}
}
};
const dotNotated = convertToDotNotation(params);
console.log(JSON.stringify(dotNotated, null, 4));