无法读取undefined属性
问题描述:
我正在循环我的对象数据,但得到这个未定义的值。无法读取undefined属性
不知道为什么,但希望有人能解释。
我的目标是这样的:
//globally set
var sdata = {"4":{"7":["1","7","3","3"]},"3":{"3":["2","8","1","1"]}};
而i循环这样的对象:
function is_occupied(position) {
for (var x in sdata) {
for (var y in sdata) {
// error's here Cannot read property '2' of undefined
var ex = sdata[x][y][2] > position.block_width ? (sdata[x][y][2] + (sdata[x][y][2] - position.block_width)) : sdata[x][y][2],
var ey = sdata[x][y][3] > position.block_height ? (sdata[x][y][3] + (sdata[x][y][3] - position.block_height)) : sdata[x][y][3];
if (position.x >= sdata[x][y][2] && position.x <= ex && position.y >= sdata[x][y][3] && position.y <= ey) {
alert('hit');
}
}
}
}
我不知道为什么它会说,它的不确定? = /无法解决。它假设在该对象的数组数据中获得位置[2]。
答
我相信你想被遍历sdata[x]
,在你的内部循环不sdata
:
function is_occupied(position) {
for(var x in sdata){
for(var y in sdata[x]){
啊!先生,好点!就这样! :) – Sir 2012-04-06 02:23:30