而且我不确定我是否完全理解这个问题。
var vtf=[]; // Dictionary that maps number-> list
var length;
var s; // A list of numbers with s.length = length
// length and s are set to values
for(i=0; i<length; i++)
{
var f=s[i];
if(f in vtf)
vtf[f].push(i);
else
vtf[f]=[i];
}
所以基本上我检查 vtf 是否包含值 f=s[i]。如果有,它将 i 附加到包含在 vtf[f] 的列表中,如果没有,则创建一个以 i 作为其唯一元素的新列表。
我得到的问题是,在运行这个之后,vtf 的每个索引只包含添加的第一个 i,尽管我知道几乎每个保存在 vtf 中的值都应该有一个多个元素的列表。
我不明白我做错了什么。当我将警报放在 if 语句中时,它们甚至不会弹出,但是当我将它们放在循环之外时,对于相同的值,它们显示它多次评估为真。