如何循环遍历Node.js数组

44

如何显示数组的变量?

代码:

   console.log(rooms);
   for (var i in rooms) {
      console.log(i);
   }

输出:

{ rooms: 
       [ { room: 'Raum 1', persons: 1 },
         { room: 'R2', persons: 2 },
         { room: 'R3', persons: 3 } ] }
rooms

2
看起来 rooms 不是一个数组,而是一个对象,请在循环中使用 rooms.rooms。 - styopdev
3个回答

81
for...in是用于循环遍历对象的属性,看起来您想要循环遍历数组,对于数组,您应该使用for...offorEach()for
for(const val of rooms) {
    console.log(val)
}

1
你应该使用 const 而不是 let,我知道这似乎很奇怪,但在每次迭代中 val 的值都是恒定的,并且仅限于大括号 {} 之间的作用域。只有当你在代码块内重新分配变量 val 时,才需要使用 let - João Pimentel Ferreira

16

使用 forEach() 与您的代码示例(room 是一个对象)将如下所示:

temp1.rooms.forEach(function(element) 
{ 
    console.log(element) 
});

如果我们想要返回房间,使用For of与您的代码示例如下:

for(let val of rooms.room)
{ 
    console.log(val.room); 
}

注意: For of 和 forEach之间的一个显著差异是,For of 支持中断循环,而 forEach 没有停止循环的方法(除非抛出错误)。


7
for (var i in rooms) {
  console.log(rooms[i]);
}

注意,当涉及到对象时,最好使用inhasOwnProperty进行检查。因此,更好的选择是使用for...offorEach


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接