运行时:
arr = {
map: {
rooms: [{}, {}]
}
};
x = {
entry: arr.map
};
console.log("-----");
for (i = 0; i < x.rooms.length; i++) {
str = i.toString();
console.log(str);
}
console.log("-----");
我遇到了一个未定义的陈述。 不确定它是否超出范围指针,但任何帮助都将不胜感激。
答案 0 :(得分:1)
x.entry
的价值与arr.map
相同,因此要获得实际的房间,您需要x.entry.rooms
:
var arr = {
map: {
rooms: [{}, {}]
}
};
var x = {
entry: arr.map
};
console.log("-----");
for (var i = 0; i < x.entry.rooms.length; i++) {
// ------------------------^^^^^^
var str = i.toString();
console.log(str);
}
console.log("-----");
(我还添加了一些变量声明。)
答案 1 :(得分:0)
啊问题被修改了。然后使用x.entry.rooms
。
使用x.entry.entry
代替x.entry
。
当您运行x={entry:arr.map};
时,您获得了x.entry==arr.map
,而arr.map.entry
是Array[2]
答案 2 :(得分:0)
不应该是我&lt; x.entry.rooms.length,'x'中没有房间。