Daniel
Daniel

Reputation: 35684

find out object item names in as3

let's say you're passing an object to a function

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

how can I get the function to know what the names of the items/sub-objects are (title and data) without specifying them?

Upvotes: 0

Views: 1240

Answers (2)

Marty
Marty

Reputation: 39456

You can use a for(String in Object) loop like so:

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

    // do stuff with key/value
}

PS it would make more sense obviously to use key in the loop, my example is done for the sake of demonstration.


Why was this downvoted.. Because I didn't do a function?

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

Upvotes: 1

Kai
Kai

Reputation: 491

You can use a for loop as follows:

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

Or use the introspection API.

The Flex 3 Help page on Performing Object Introspection has a good overview of these.

Upvotes: 2

Related Questions