簡體   English   中英

打印數組 javascript 的 object 數組

[英]Print array of object of array javascript

我對一些數據感到很困惑。 我正在使用香草js。 我有一個這樣的數組。

rooms=[];
rooms.push({"room":"room1","users":[{"name":"arif"},{"name":"ozgur"}]});
rooms.push({"room":"room2","users":[{"name":"mehmet"},{"name":"hürol"}]});

我想打印 room1 的用戶。 我努力了

let activeroom = rooms.filter(room => room.room === "room1");
console.log(activeroom.users.toString()); 

但它沒有用。 如何訪問名稱? 謝謝你。

使用查找代替過濾器

 rooms=[]; rooms.push({"room":"room1","users":[{"name":"arif"},{"name":"ozgur"}]}); rooms.push({"room":"room2","users":[{"name":"mehmet"},{"name":"hürol"}]}); let activeroom = rooms.find(room => room.room === "room1"); console.log(activeroom.users);

您的過濾器是正確的,但activeroom是數組而不是 object 並且您不能為 object 調用.toString()使用JSON.stringify()代替。

 rooms=[]; rooms.push({"room":"room1","users":[{"name":"arif"},{"name":"ozgur"}]}); rooms.push({"room":"room2","users":[{"name":"mehmet"},{"name":"hürol"}]}); let activeroom = rooms.filter(room => room.room === "room1"); console.log(JSON.stringify(activeroom)); console.log(JSON.stringify(activeroom[0].users)); // [0] select first index of object

你可以這樣做:

let activeRooms = [];

rooms.forEach(eachRoom => {
  if (eachRoom.room === 'room1) {
      activeRooms.push(eachRoom);
  }
});

console.log('Active rooms array ==>', activeRooms);

// if you want to use your way of doing, implement filter inside the foreclosure. It will work. 

Room.room is not a property .. room is an array. So you'll have to loop through every room obj

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM