Apache flex 如何在ActionScript 3.0中找到关联数组的长度?
在ActionScript 3.0中,是否有一种简单的方法可以检索关联数组(作为Apache flex 如何在ActionScript 3.0中找到关联数组的长度?,apache-flex,actionscript-3,arrays,Apache Flex,Actionscript 3,Arrays,在ActionScript 3.0中,是否有一种简单的方法可以检索关联数组(作为对象实现)的长度 我知道在AS3中创建关联数组有两种主要方法: 使用字典对象;当按键不需要是字符串时尤其方便 使用对象,只需为每个所需元素创建属性即可。属性名是键,值是值 我的应用程序使用方法2(使用对象类来表示关联数组) 我希望有比我的for循环更自然的东西,它可以手动计算所有元素。我想你只能“手动”计算它们了 一个选项是将整个内容包装在一个类中,并保留一个单独的变量,在添加/删除时更新该变量 您必须像这样在for
对象实现)的长度
我知道在AS3中创建关联数组有两种主要方法:
使用字典
对象;当按键不需要是字符串时尤其方便
使用对象
,只需为每个所需元素创建属性即可。属性名是键,值是值
我的应用程序使用方法2(使用对象
类来表示关联数组)
我希望有比我的for
循环更自然的东西,它可以手动计算所有元素。我想你只能“手动”计算它们了
一个选项是将整个内容包装在一个类中,并保留一个单独的变量,在添加/删除时更新该变量 您必须像这样在for循环中计算它们。当然,您可以创建一个类并将for循环粘贴到该类中
有关AS3中集合的一些重要实现,请查看
编辑2013毫不奇怪,链接会在一段时间后断开。试试这个新的:。在这上面做一些测试实际上让我很惊讶。以下是数组的正常用法:
var things:Array = [];
things.push("hi!");
trace(things.length);
// traces 1
trace(things);
// traces hi!
如果我们将值设置为字符串,则如下所示:
var things:Array = [];
things["thing"] = "hi!";
trace(things.length);
// traces 0
trace(things);
// traces an empty string
trace(things["thing"]);
// traces hi!
基本上,如果使用字符串添加内容,则是在设置属性,而不是实际添加到数组中。让我想知道为什么数组是这样动态的
所以。。。是的,用一个数字来计算物品。。。循环
var count:int;
var key:String;
for (key in myObject)
{
count++;
}
trace ("myObject has this many keys in it: " + count);
或者,对于每种语法(我还没有测试哪种更快)
真奇怪!您认为数组的内部结构是否被重新构造为对象?当所有内容都扩展了对象(它是动态的)时,有些类是动态的,有些是静态的。但是为什么数组是动态的呢?虽然可以,但这是皱眉的apon。在API中:“不要使用数组类来创建关联数组……要创建关联数组,请使用对象类。”我打赌第一个更快,但差别很小。我没有投反对票,但链接断了。对于未来的用户,请查看此
for each (var o:* in myObject)
{
count++;
}