2010-12-01 6 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でこれを行うことができますもちろん、オブジェクトを使用します。

問題はNaNです。同時にキーを自動作成して自動インクリメントしようとすると、NaNが得られ、すべてが破壊されます。

もちろん、条件付きでキーが存在するかどうかをテストし、そのキーが自動インクリメントされているかどうかをテストしたり、そうでない場合は1に設定したりできます。

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

AS3の正しいイディオムは何ですか?イディオムはありますか?あなたはイディオムです。 - T

答えて

3

あなたの答えは正しいですが、あなたは短い方法で同じ操作を行うことができます。質問者は美学に関わる機密Perlの開発者であるため、

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

+1。 –

+0

いいです。 lol @ danyal。真の真実*白濁* –

0

ここで間違っているのではないですか?イディオムに沿って移動してください。真剣に、あなたがしたことは大丈夫です。

関連する問題