Einen Wert in einem Objekt ändern
Ausgangslage:
let object := {
Level1: {
TestKey: "Testvalue1",
Level2: {
TestKey: "Testvalue2",
Level3: {
TestKey: "Testvalue3"
}
}
}
};
object.(Level1 := {
TestKey: "newValue"
});
alert(object.Level1.TestKey)
Wie kann ich nun einen Wert innerhalb dieses Objektes ändern ohne das Objekt komplett neu aufzubauen?
3 Antworten
-
Hallo Etienne,
so direkt sehe ich keine Möglichkeiten. Als workaround;
---
let valuesArray:=["Testvalue1","Testvalue2","Testvalue3"];
let object := {
Level1: {
TestKey:item(valuesArray,0)
Level2: {
TestKey: item(valuesArray,1),
Level3: {
TestKey: item(valuesArray,2)
}
}
}
};
******
valuesArray:=for i in range(cnt(valuesArray)) do
if i=0 then newValue else item(valuesArray,i) end;
---
Leo
-
Vielen Dank für die Antwort. Denke aber nicht das ich den Workaround so bei mir anwenden kann, da ich ein mir unbekanntes Objekt verändern möchte, sprich eine API-Response und diese dann direkt wieder weiterverswenden wollte.
In meiner Anwendung mache ich einen Request auf eine API und hole mir einen Datensatz, den ich mit Daten aus dem Ninox verestzt wieder zurücksenden will.
Die zu verändernden Daten befinden sich immer im gleichen Key:
let getResult := do as server
http("GET", apiUrl + "endpoint/" + dataId, header, body)
end;
getResult.result.Key := "Neuer Datenwert";
let putResult := do as server
http("PUT", apiUrl + "endpoint/" + dataId, header, getResult.result)
end; -
Aber ich habe bis jetzt eben noch keinen Weg gefunden einen spezifischen Wert direkt zu bearbeiten:
getResult.result.Key := "Neuer Datenwert"; funktioniert also nicht
Content aside
- vor 3 JahrenZuletzt aktiv
- 3Antworten
- 175Ansichten