我有一些属性的数组。当我尝试查找对象的索引时,我收到错误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));
答案 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
将是您的索引。
当然,不要忘记解析错误,如果找不到你的目标,你不应该说最后一个索引是什么样的目标。