連想配列の要素をループする問題
連想配列内のすべての要素を確認する必要があります
解決
<<
// 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>
Re: 連想配列の要素をループするありがとう!
なぜ変更したのか疑問に思いました。 ウィキペディアには偉大な歴史、〜30jun2021のようです。 また、古いページ、以前はどうだったか疑問に思う場合でも、これはまだ機能します。
元のコードでは、列番号と列名の組み合わせを使用していました。 それは良いことも悪いこともある、と思います。 数値としては問題ありませんでしたが、少なくとも名前付き列は失敗しました。 しかし、その場合、カラム 7 または 8 は、間違ったカラムからの不正な原子量により、静かに失敗したり動作したりしている可能性があります。
Re: 連想配列の要素をループする
ありがとう@Craige_Hales役立つデモンストレーションのために。
このスクリプトを試してみると、Wikipedia がテーブルを更新して、連想配列コマンドがエラーを返すようになっていることに気付きました。
連想配列を正しく生成するには、これを実行する必要がある行だと思います。
map_Symbol_To_Data = Associative Array( dt[1 :: 118, "Element 2"], dt[1 :: 118, [3/*element name*/, 1/*element number*/, 8/*atomic weight*/]] );
Re: 連想配列の要素をループするsym = map_Symbol_To_Data << first
最初のキーを取得します。
sym = map_Symbol_To_Data << next( sym )
現在のキーの後のキーを取得します。シム。
JSL 変数、関数、メソッドでは大文字は重要ではありません。 ただし、実際のキー値にとっては重要です。 sym="A" と sym="a" は 2 つの異なるキーです。
map_Symbol_To_Data[sym]
連想配列内の sym 値を検索します。
map_symbol_to_data は、連想配列がシンボル (sym、キー) のデータ値へのマッピングであることを示すことになっています。
Re: 連想配列の要素をループする最初のメソッド (First、Next) は、連想配列のキーまたは値をループしますか? また、スクリプト インデックスにはスペルの不一致があります。最初は First が大文字になっていませんが、その後は下のほうになるため、大文字にする必要があるかどうかわかりません。 そうあるべきでしょうか?
Re: 連想配列の要素をループするfor ループの賢い使い方。私はこれまで連想配列で while を使用したことしかありませんでした。これは試してみるしかありません。