在as3中找出对象项名称

时间:2011-06-02 03:49:03

标签: actionscript-3

假设您正在将对象传递给函数

{title:"my title", data:"corresponding data"}

如何在不指定项目/子对象(titledata)的情况下让函数知道项目/子对象的名称是什么?

2 个答案:

答案 0 :(得分:2)

您可以按如下方式使用for循环:

for (var key:String in obj) {
    var value:String = obj[key];
    trace(key + ": " + value);
}

或使用内省API。

Performing Object Introspection上的Flex 3帮助页面对这些内容有了很好的概述。

答案 1 :(得分:1)

你可以像这样使用for(String in Object)循环:

var i:String;
for(i in object)
{
    var key:String = i;
    var value:Object = object[i];

    // do stuff with key/value
}

PS显然在循环中使用key会更有意义,我的示例是为了演示而完成的。


为什么这会被贬低..因为我没有做功能?

function findKeys(obj:Object):Array
{
    var ar:Array = [];

    var i:String;
    for(i in obj)
    {
        ar.push(i);
    }

    return ar;
}

var ob:Object = {things:"value", other:5};

trace(findKeys(ob)); // other,things