[英]ActionScript 3 - Using Associative Array to count occurrences
大家好,在許多編程語言中都有一個很棒的習慣用法,可讓您使用散列來計數項目的出現。 例如,在Perl中,假設您有一個學生列表,並且想查看每個名字中有多少(2個鮑勃,1個傑里米,22個艾丹等):
my %uniqueNames;
for (@studentNames){ $uniqueNames{$_}++; }
# print it out
for (keys %uniqueNames){ print "$_ : $uniqueNames{$_}\n"; }
因此,您當然可以在ActionScript 3中使用對象來執行此操作。
問題是NaN。 如果您嘗試同時自動創建和自動增加密鑰,則會得到NaN,並且整個過程都會崩潰。
當然,您可以使用條件測試該密鑰是否存在,然后對其進行自動遞增,如果不存在,則將其設置為一個,但這很丑陋。
studentNames[name] = studentNames[name] ? studentNames[name] + 1 : 1; // shudder
AS3的正確用法是什么? 有成語嗎? 你是成語。 -T
您的答案是正確的,但是您可以用更短的方法做同樣的事情:
studentNames[name] = (studentNames[name] || 0) + 1;
沒錯,這是成語。 認真地說,您所做的一切都很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.