循环关联数组的元素解决方案
使用 <<
// 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 与关联数组。我得试试这个。