如何在 actionscript 3 中访问对象内的数组值?

How to access array value inside an object in actionscript 3?

我有一个对象可以在 Actionscript 3 中指定动物的属性:

var Rabbit:Object = {
    food : "Carrot",
    predator : ["Lion","Eagle","Human"]
};

并通过调用 Rabbit['predator'] 将给出输出 Lion,Eagle,Human.

我想访问对象 Rabbit 中那个 predator 数组(如 predator[1])的特定索引,并将其存储在一个变量中。但是调用 Rabbit['predator'[1]]Rabbit[predator[1]] 并没有给我任何想要的输出。我怎样才能访问它?

非常感谢您的帮助

您可以像这样访问对象内部的数组:

var arr:Array = Rabbit.predator as Array;
trace(arr[1]);

或者你也可以这样做:

Rabbit.predator[1];

希望对您有所帮助。

var name:String = Rabbit.predator[0];  // Lion
var name:String = Rabbit["predator"][1];  // Eagle

您可以考虑将 Rabbit 的所有属性都作为数组,这样您就可以始终将其 "qualities" 视为一组值。我在下面做了兔子。例如,

var rabbit:Object =
{
    food: ["Carrot"],
    predator: ["A", "B", "C"]
};

...然后你可以...

for ( var key:String in rabbit )
{
    trace( key );
    var vals:Array = rabbit[key];
    for ( var i:int = 0; i < vals.length; ++i )
    {
        trace( "   ", vals[i] );
    }
}

Javascript 变量以小写开头,类 以大写开头是惯例。因此,在您的代码中,考虑使用 rabbit 而不是 Rabbit。