Ich möchte in der Lage sein, ein Objekt oder mehrere Objekte mit einer Funktion zu aktualisieren, die den Speicherort von dem angibt, was ich im Object aktualisieren möchte. Ich bin mir nicht sicher, was die richtige Syntax dafür ist. Mein Versuch unten erstellt tatsächlich einen neuen Parameter im ursprünglichen Objekt, da ich stattdessen das vorhandene Feld des Benutzerobjekts aktualisieren möchte.Wie spezifizierst du Objektstandorte in Funktionsargument Javascript
var User = {
local: {
location: {
city: "",
state: ""
}
}
}
var Profile = {
location: {
city: "",
state: ""
}
}
function update(model, parameter, updatedLocation) {
return model[updatedLocation] = {
city: updatedLocation.city,
state: updatedLocation.state,
};
}
update(User, ["local"]["location"], { city: "ny", state: "ny"});
update(Profile, ["location"], { city: "ny", state: "ny"});
console.log(User);
console.log(Profile);
Der Grund Ihrer aktuellen Code wird ein neues Feld hinzuzufügen, ist die Art und Weise Sie zum „Parameter“ vorbei. Sie möchten eine Zeichenfolge (kein Array), und Sie können zwei Indizes nicht so kombinieren, wie Sie es haben. Zum Beispiel 'update (User [" local "]," location ", ...' und 'update (Profile," location ", ...'. Auch sollte deine Funktion 'model [parameter]', nicht 'model [updatedLocation] '. –