Durchlaufen der Elemente eines assoziativen ArraysProblem
Sie müssen jedes Element in einem assoziativen Array betrachten
Lösung
Verwenden Sie die Nachrichten <<
// load a table of elements
dt = Open( "https://en.wikipedia.org/wiki/List_of_chemical_elements", HTML Table( 4, Column Names( 2 ), Data Starts( 5 ) ) );
// make an associative array using "H" to lookup "Hydrogen" and some of its properties
map_Symbol_To_Data = Associative Array( dt[1 :: 118, "Symbol"], dt[1 :: 118, [3/*element name*/, 1/*element number*/, 7/*atomic weight*/]] );
// close the table
Close( dt, nosave );
// loop through the keys using <<FIRST and=""><<NEXT for=""></NEXT></FIRST>
Betreff: Durchlaufen der Elemente eines assoziativen ArraysDanke!
Da fragte ich mich: Warum die Änderung? Wikipedia hat tolle Geschichte , sieht aus wie ~30.06.2021. Es hat auch die alte Seite , was immer noch funktioniert, wenn Sie sich fragen, wie es früher aussah.
Der ursprüngliche Code verwendete eine Mischung aus Spaltennummern und Spaltennamen. Das ist gut und schlecht, denke ich. Zumindest ist die benannte Spalte fehlgeschlagen, obwohl sie als Zahl in Ordnung gewesen wäre. Aber dann könnte Spalte 7 oder 8 stillschweigend ausgefallen sein bzw. mit einem schlechten Atomgewicht aus der falschen Spalte funktioniert haben.
Betreff: Durchlaufen der Elemente eines assoziativen Arrays
Danke @Craige_Hales für die nützliche Demonstration.
Beim Ausprobieren dieses Skripts ist mir aufgefallen, dass Wikipedia die Tabelle so aktualisiert hat, dass der Befehl „Assoziatives Array“ einen Fehler zurückgibt.
Ich denke, dass dies die Zeile ist, die ausgeführt werden muss, damit das assoziative Array korrekt erstellt wird.
map_Symbol_To_Data = Associative Array( dt[1 :: 118, "Element 2"], dt[1 :: 118, [3/*element name*/, 1/*element number*/, 8/*atomic weight*/]] );
Betreff: Durchlaufen der Elemente eines assoziativen Arrayssym = map_Symbol_To_Data << first
ruft den ersten Schlüssel ab.
sym = map_Symbol_To_Data << next( sym )
Ruft den Schlüssel nach der aktuellen Eingabe ab sym .
Die Groß- und Kleinschreibung ist für JSL-Variablen, -Funktionen oder -Methoden nicht wichtig. Es ist jedoch wichtig für den tatsächlichen Schlüsselwert. sym="A" und sym="a" sind zwei unterschiedliche Schlüssel.
map_Symbol_To_Data[sym]
sucht den Sym-Wert im assoziativen Array.
„map_symbol_to_data“ soll anzeigen, dass es sich bei dem assoziativen Array um eine Zuordnung von Symbolen (sym, den Schlüsseln) zu Datenwerten handelt.
Betreff: Durchlaufen der Elemente eines assoziativen ArraysDurchläuft die erste Methode (First, Next) eine Schleife durch die Schlüssel oder die Werte des assoziativen Arrays? Außerdem gibt es im Skriptindex eine Rechtschreibunstimmigkeit: Zuerst wird „First“ nicht großgeschrieben, dann steht es weiter unten, sodass ich nicht weiß, ob es großgeschrieben werden soll oder nicht. Sollte es sein?
Betreff: Durchlaufen der Elemente eines assoziativen ArraysClevere Verwendung einer for-Schleife.Ich habe bisher nur whiles mit assoziativen Arrays verwendet.Ich werde das versuchen müssen.