如何从javascript中包含更多对象的对象中获取值

如何从javascript中包含更多对象的对象中获取值,javascript,node.js,Javascript,Node.js,我有一个全局变量var room={}当我创建一个rooms时,它会转到那里,我会得到这样的对象 { '4bea542f-147c-4763-ab1c-bb6c40b1392e': { private: false, users: { btrJ7946MkjFSz_zAAAA: [Object], 'qe_1igD7Q-RbDWc1AAAC': [Object] }, gameS: false, nextUser: 'btrJ7

我有一个全局变量
var room={}
当我创建一个rooms时,它会转到那里,我会得到这样的对象

{
  '4bea542f-147c-4763-ab1c-bb6c40b1392e': {
    private: false,
    users: {
      btrJ7946MkjFSz_zAAAA: [Object],
      'qe_1igD7Q-RbDWc1AAAC': [Object]
    },
    gameS: false,
    nextUser: 'btrJ7946MkjFSz_zAAAA',
    timer: null,
    round: 0,
    winner: false,
    alreadyGuess: [],
    timerStartedAt: 0,
    settings: { gameStarted: false, time: null }
  },
  'e6ea6785-e522-4b8c-aeb8-b2551e89c895': {
    private: false,
    users: {
      'n5BODsuqAWb5Y-WAAAAD': [Object],
      paf4cWgX08Qi_8m5AAAE: [Object]
    },
    gameS: false,
    nextUser: 'n5BODsuqAWb5Y-WAAAAD',
    timer: null,
    round: 0,
    winner: false,
    alreadyGuess: [],
    timerStartedAt: 0,
    settings: { gameStarted: false, time: null }
  }
}
我如何访问这些具有不同名称的对象,如'4bea542f-147c-4763-ab1c-bb6c40b1392e',以及可能获取值private=false的对象,您可以跳过

const o={'4bea542f-147c-4763-ab1c-bb6c40b1392e':{private:false,用户:{btrJ7946MkjFSzèzAAAA:[Object],'qe_1igD7Q-RBDWC1aac':[Object]},游戏:false,下一个用户:'btrJ7946MkjFSzèzAAAA',计时器:null,回合:0,赢家:false,alreadyGuess:[],计时器:0,设置:{gameStart:false,time:null},'e6ea6785-e522-4b8c-aeb8-b2551e89c895':{private:false,用户:{'n5BODsuqAWb5Y Waaad':[Object],PAF4CWG08Qi_8m5AAAE:[Object]},游戏:false,下一个用户:'n5BODsuqAWb5Y Waaad',计时器:null,回合:0,赢家:false,alreadyGuess:[],计时器开始时间:0,设置:{gameStarted:false,time:null};
const res=Object.values(o.filter)(x=>!x.private);
控制台日志(res)

.as控制台包装器{top:0;max height:100%!important}
取决于您想要完成什么,严格地回答您的问题
Object.values()
可能是最简单的,但它不会保留您可能有兴趣保留的密钥

要获取密钥,请使用
密钥

var publicRoomsIds=Object.key(房间).filter(函数(键){
var房间=房间[钥匙];
返回(room.private==false);
});
要获取值(无键),请使用
values

var publicRooms=Object.values(房间).filter(功能(房间){
返回(room.private==false);
});
var房间={
“4bea542f-147c-4763-ab1c-bb6c40b1392e”:{
二等兵:错,
},
“e6ea6785-e522-4b8c-aeb8-b2551e89c895”:{
二等兵:是的,
},
“e6ea6785-3321-4b8c-aeb8-b2551e89c895”:{
二等兵:错,
},
“e6ea6785-7663-4b8c-aeb8-b2551e89c895”:{
二等兵:是的,
},
};
var publicRoomsIds=Object.key(rooms).filter(function(key){
var房间=房间[钥匙];
返回(room.private==false);
});
var publicRooms=对象.值(房间).过滤器(功能(房间){
返回(room.private==false);
});
控制台日志(PublicRoomSID);
控制台日志(公共房间)
应该是Object.Keys(房间)
Object.values(房间).filter(e=>e.private==false)
只要使用
Object.entries()
就可以了。
Object.entries(obj).filter([,room])=>room.private==false)
甚至
Object.entries(obj).filter([,{private}=>!private)