正在學習JavaScript中的數組,遇到hash數組的一段代碼,看了很久都不太明白,雖然有注釋,但是還是沒明白,不知道hash數組到底代表的是什麼,也不明白hash數組的作用,到底要怎麼用hash,求大神解釋完下圖的代碼之後再細講一下hash數組,謝啦!
if(hash[arr[i]]===undefined){
hash[arr[i]]=1;
}
因為剛開始是個空的hash數組,hash數組是通過鍵值對取值的,所以剛開始hash[a]的值肯定是等於undefined的,如果它等於未定義,則添加一份鍵值對數據就變成了hash=['a':1],第二次hash[b]的值又為undefined,所以hash=['a':1,'b':1],同理可以得出hash=['a':1,'b':1,'c':1],但是當第二次找到hash[a],hash[b],hash[c]的時候這裡的值就不是等於undefined了,而是等於1,這時候就跳過去了,所以hash最終變成了['a':1,'b':1,'c':1],它的作用其實不大,就是個去重,當然如果改成hash[a]=hash[a]+1就變成了算數組中各個字符出現的次數了。