在数组中查找对象索引时出错

时间:2014-05-27 13:31:38

标签: arrays actionscript-3 flash

我有一些属性的数组。当我尝试查找对象的索引时,我收到错误TypeError:错误#1009。我使用的是Flash CS6。

这是我的阵列:

var squareArr:Object  = {
     a1: {
          piece: wr1_txt,
          pieceLoc: {  
            x: "-3",
            y: "347"
          }
     },
     b1: {
          piece: wn1_txt,
          pieceLoc: {  
            x: "47",
            y: "347"
          }
     },
...

下面的代码给出了错误#1009,而我希望它返回a1:

trace (squareArr.indexOf(wr1_txt));

1 个答案:

答案 0 :(得分:2)

你不能indexOf()一个对象,你应该做一个属性查找周期。

var s:String;
var found:Boolean=false;
for (s in squareArr) {
    if (squareArr[s].piece == wr1_txt) { // YAY found it
        found=true;
        break;
    }
}
if (found) trace(s); else trace("Not found!");

s将是您的索引。

当然,不要忘记解析错误,如果找不到你的目标,你不应该说最后一个索引是什么样的目标。