ActionScript 3 - 使用关联数组计算出现次数

时间:2010-12-01 14:30:30

标签: actionscript-3 hash associative-array idioms

嘿大家,在许多编程语言中都有这个很好的习惯用法,可以让你用哈希来计算项目的出现次数。例如在Perl中,假设你有一个学生列表,你想看看你有多少名字(2个Bobs,1个Jeremy,22个Aidans等):

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

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

因此,您可以使用Object。

在ActionScript 3中执行此操作

问题是NaN。如果你试图同时自动创建并自动增加一个密钥,你会得到NaN,整个事情都会崩溃。

当然,您可以使用条件来测试密钥是否存在,然后自动增加密钥,或者如果没有则将其设置为1,但这很难看。

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

AS3的正确用法是什么?有成语吗?你是个成语。 - T

2 个答案:

答案 0 :(得分:3)

你的回答是正确的,但你可以用更短的方式做同样的事情:

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

答案 1 :(得分:0)

这里没有什么不对的...继续前进,成语。说真的,你做的很好。