Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Behandle den Wert ex["b"] wie jede andere Liste.
Names Default To Here( 1 );
ex = Associative Array();
ex["a"] = {"10"};
ex["b"] = {"20"};
ex["c"] = {"30"};
// Add new value to "b"
Insert Into( ex["b"], {"21"} );
Show( ex );Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Marks Antwort ist die beste. Du kannst es auch so machen
ex["c"][nitems(ex["c"])+1]="99";
was hässlicher, langsamer und weniger prägnant ist. Aber es könnte andere Möglichkeiten vorschlagen. Listen haben eine coole Subskriptionseigenschaft für One-Beyond-the-End, die es ermöglicht, die Liste um ein Element zu erweitern.
Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Ich verwende eigentlich eher so etwas, also vermisse ich eine Auswertung der Variablen:
Names Default To Here( 1 );
ex = Associative Array();
a_s = "a";
b_s = "b";
c_s = "c";
a_n = "10";
b_n = "20";
c_n = "30";
ex[a_s] = {a_n};
ex[b_s] = {b_n};
ex[c_s] = {c_n};
// Add new value to "b"
b_n = "21";
Insert Into( ex[b_s], {b_n} );
Show( ex );
// ex = ["a" => {a_n}, "b" => {b_n, b_n}, "c" => {c_n}];
Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Die Definition von list besagt, dass sie nicht ausgewertet werden.
Liste: Erstellt eine Liste von Elementen, ohne sie zu bewerten.
Wickeln Sie sie einfach in evallist() ein
Names Default To Here( 1 );
ex = Associative Array();
a_s = "a";
b_s = "b";
c_s = "c";
a_n = "10";
b_n = "20";
c_n = "30";
ex[a_s] = Evallist({a_n});
ex[b_s] = Evallist({b_n});
ex[c_s] = Evallist({c_n});
// Add new value to "b"
b_n = "21";
Insert Into( ex[b_s], Evallist({b_n}) );<BR />// or you could this it seems easier.
// Insert Into( ex[b_s], b_n) ;<BR />
Show( ex );Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Dies funktioniert, aber wenn ein bestimmter Schlüssel nicht vorhanden ist, kann ich keine neuen Elemente darin einfügen.
Unabhängig davon, ob der Schlüssel bereits vorhanden ist oder nicht, gibt es eine einfache Möglichkeit, entweder einen neuen Schlüssel--> Wert einzuführen oder einen neuen Wert einzufügen?
Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Ich denke, Sie müssen eine if-Anweisung verwenden, um zu überprüfen, ob der Schlüssel vorhanden ist, und ihn erstellen, wenn dies nicht der Fall ist. Normalerweise mache ich das, indem ich es mit einer leeren Liste erstelle und dann in den Code falle, der das neue Element zur bestehenden Liste hinzufügt.Betreff: Hinzufügen zusätzlicher Werte zu vorhandenen Schlüsseln in assoziativen Arrays (Datenwörterbücher in JSL)Vollständiges Beispiel, einschließlich der offensichtlich so geht das nicht richtig funktionieren.
// I wish the default value for AA's worked correctly with a list for the
// default, but it does not:
aa = [=> {}];
Insert Into( aa["fred"], 1 );
Insert Into( aa["ralph"], 2 );
Show( aa ); // aa = [=> {1, 2}]; ?!?!?!?!
// so you must do an explicit test and create the key/list like this:
aa = [=> ];
For( i = 1, i <= 3, i += 1,
For Each( {key}, {"fred", "ralph"},
If( !(aa << Contains( key )), // key does not exist?
aa[key] = {};// add the key with an empty list
);
Insert Into( aa[key], i );// insert into list
)
);
Show( aa ); // aa = ["fred" => {1, 2, 3}, "ralph" => {1, 2, 3}];
Einfügen zusätzlicher Werte in vorhandene Schlüssel in assoziativen Arrays (Datenwörterbücher in JSL)Ich kann nicht die richtige Methode finden, um in assoziativen Arrays neue Werte zu vorhandenen Schlüsseln hinzuzufügen.
Names Default To Here( 1 );
ex = Associative Array();
ex["a"] = {"10"};
ex["b"] = {"20"};
ex["c"] = {"30"};
<BR />// Add new value to "b"
ex["b"] = {"21"};
show(ex);
//ex = ["a" => {"10"}, "b" => {"21"}, "c" => {"30"}];
// Solution needed
//ex = ["a" => {"10"}, "b" => {"20", "21"}, "c" => {"30"}];Erweiterte statistische ModellierungDatenmischung und -bereinigung