【问题标题】:ActionScript 3: how to create a array or list like: array["name1"] = "hello" (just like you can do in PHP)ActionScript 3:如何创建一个数组或列表,例如:array["name1"] = "hello"(就像你可以在 PHP 中做的那样)
【发布时间】:2010-07-04 01:25:28
【问题描述】:

在 PHP 中,我习惯于使用名称作为键来创建数组

array["something1"] = "output1";
array["something2"] = "output2";
array["something3"] = "output3";

然后使用 foreach 让他们打印或用它做其他事情,比如

foreach ($array as $key => $value) {
echo "$key = $value";
}

在 AS3 中是否有类似的可能?

编辑:: 这些 var 的另一个好处是您可以执行以下操作:

GetSomethingString:String = GetTheString(); // lets yust say this returns something2
trace(array[GetSomethingString]); // then this will return output2

【问题讨论】:

    标签: php actionscript-3 arrays foreach


    【解决方案1】:

    你想要的是一个对象和一个for ... in 语句:

    var obj = {'something1': 'output1',
               'something2': 'output2',
               'something3': 'output3'};
    for (var key:String in obj){
        trace(key + '=' + obj[key]);
    }
    

    编辑: 是的,这也允许:

    trace(obj[getTheString()]);
    

    【讨论】:

    • +1。只是一个注释。 keyfor...in 循环中始终是String,因此不需要*。此外,与 PHP 不同,元素的遍历顺序不能保证与您基于插入顺序所期望的相同(不是您在答案中暗示这一点)
    • @JuanPabloCalifano 在两个帐户上都是正确的。我更新了密钥类型,但是关于排序没有什么可以做的——它完全依赖于实现(例如 flex、vs rhino、vs Chrome 的 javascript impl 等)
    【解决方案2】:

    使用对象实际上会起作用,但我认为您真正要寻找的是 Dictionary 类; see this link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2011-10-09
      相关资源
      最近更新 更多