2010-12-01 73 views
0

嗨大家好,在許多編程語言中都有這樣一個偉大的習慣用法,它允許您使用散列來統計項目的出現次數。例如在Perl,假設你有學生的名單,你想看看有多少每個名字的你有(2個鮑勃,1傑里米,22個Aidans等):ActionScript 3 - 使用關聯數組來計算出現次數

my %uniqueNames; 
for (@studentNames){ $uniqueNames{$_}++; } 

# print it out 
for (keys %uniqueNames){ print "$_ : $uniqueNames{$_}\n"; } 

所以,你可以在ActionScript 3做當然,使用Object。

問題是NaN。如果您嘗試同時自動創建並自動增加一個密鑰,那麼您會得到NaN,並且整個事情都會崩潰。

當然,您可以使用條件來測試密鑰是否存在,然後自動增加它,或者如果不是,則將其設置爲1,但這很難看。

studentNames[name] = studentNames[name] ? studentNames[name] + 1 : 1; // shudder 

什麼是AS3的正確用法?有沒有一個成語?你是一個成語。 - T

回答

3

你的答案是正確的,但你可以做同樣在更短的方式:

studentNames[name] = (studentNames[name] || 0) + 1; 
+2

1,因爲提問者是一個關注美學敏感的Perl開發。 – 2010-12-01 16:53:58

0

這裏不是沒有錯......一路走來,成語。說真的,你做的很好。