【问题标题】:Finding objects index in a multidimensional array在多维数组中查找对象索引
【发布时间】:2014-03-29 01:10:12
【问题描述】:

我正在制作库存并添加堆栈,但我遇到了问题

下面是我想要的与有效的比较

我只想找到我经过的对象的索引

myArray[0] = [item:object,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

【问题讨论】:

    标签: arrays actionscript-3 flash multidimensional-array inventory


    【解决方案1】:

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

    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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-17
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多