0

林使库存和进出口加堆栈,但香港专业教育学院击中一个问题查找对象指数多维数组

下面

是我想对比一下什么工作

我只是想找到对象的索引我穿过

myarray的[0] = [项目:对象,StackAmmount:INT]

 var myArray:Array = new Array(); 
     myArray[0] = ["name1",1]; 
     myArray[1] = ["name2",1]; 
     myArray[2] = ["name3",1]; 

     trace("Name" , myArray[0][0]); 
     //traces "name1" 
     trace("Stack" , myArray[0][1]); 
     //traces "1" 

     trace("Index of Object" , myArray.indexOf("name2")); 
     //traces -1 
     // Not Working (NOT FOUND) 

     //How can I find the index of "item1" or "item2" in the above example 




     var myOtherArray:Array = new Array(); 
     myOtherArray[0] = "name1"; 
     myOtherArray[1] = "name2"; 
     myOtherArray[2] = "name3"; 

     trace("Name" , myOtherArray[0]); 
     //traces "name1" 

     trace("Index of Object" , myOtherArray.indexOf("name2")); 
     //traces 1 
     //Working 

也许有处理堆栈的更好的办法?

粘贴斌链接:http://pastebin.com/CQZWFmST

回答

0

我会使用自定义class,因此一维向量就足够了。 class将包含项目的name和堆栈。您可以将此class的子类别overridemaxStack变量的项目,然后搜索会更容易,您可以遍历vector并检查name

public class InventoryItem 
{ 
    protected var _name:String; 
    protected var _stack:int; 
    protected var _maxStack:int; 

    public function InventoryItem():void { 

    } 

    public function get name():String { 
     return _name; 
    } 
    public function get stack():int { 
     return _stack; 
    } 
    public function set stack(value:int):void { 
     _stack = value; 
    } 
    public function get maxStack():int { 
     return _maxStack; 
    } 
} 
... 
public class InventoryWeapon extends InventoryItem 
{ 
    public function InventoryWeapon(__name:String, startStack:int) { 
     _maxStack = 64; 
     _name = __name; 
     _stack = startStack; 
    } 
}