for循环中的未定义变量指向另一个变量

时间:2017-05-10 17:25:45

标签: javascript html

运行时:

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("-----");

我遇到了一个未定义的陈述。 不确定它是否超出范围指针,但任何帮助都将不胜感激。

3 个答案:

答案 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.entryArray[2]

答案 2 :(得分:0)

不应该是我&lt; x.entry.rooms.length,'x'中没有房间。