循環關聯數組的元素解決方案
使用 <<
// 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>
回复:循環關聯數組的元素謝謝!
這讓我想知道為什麼要改變? 維基百科有偉大的歷史,看起來像 ~2021 年 6 月 30 日。 它還具有舊頁,如果您想知道它以前是什麼樣子,它仍然有效。
原始代碼使用了列號和列名稱的混合匹配。 我想這有好有壞。 至少指定的列失敗了,儘管它作為一個數字就可以了。 但是,第 7 列或第 8 列可能會默默地失敗/使用來自錯誤列的錯誤原子量。
回复:循環關聯數組的元素
謝謝@Craige_Hales進行有用的演示。
當嘗試這個腳本時,我注意到維基百科已經更新了表格,使得關聯數組命令返回錯誤。
我認為如果要正確生成關聯數組,則需要運行此行。
map_Symbol_To_Data = Associative Array( dt[1 :: 118, "Element 2"], dt[1 :: 118, [3/*element name*/, 1/*element number*/, 8/*atomic weight*/]] );
回复:循環關聯數組的元素sym = map_Symbol_To_Data << first
檢索第一個密鑰。
sym = map_Symbol_To_Data << next( sym )
檢索當前鍵輸入後的鍵符號。
對於 jsl 變量、函數或方法來說,大小寫並不重要。 然而,這對於實際的鍵值很重要。 sym="A" 和 sym="a" 是兩個不同的鍵。
map_Symbol_To_Data[sym]
在關聯數組中查找 sym 值。
map_symbol_to_data 應該指示關聯數組是符號(sym,鍵)到數據值的映射。
回复:循環關聯數組的元素第一個方法(First、Next)是否循環遍歷關聯數組的鍵或值? 另外,在腳本索引中,存在拼寫不一致的問題——一開始First沒有大寫,然後是下面的,所以我不知道是否應該大寫。 應該是嗎?
回复:循環關聯數組的元素巧妙地使用for循環。我之前只使用過 while 與關聯數組。我得試試這個。