如何从嵌套对象中筛选出room === 'Lobby'的用户数组
从嵌套对象中筛选指定房间的用户数组
嘿,这事儿简单!要从嵌套的users对象里挑出所有room === 'Lobby'的用户,咱们可以用Object.values()先把对象里的用户数据转成数组,再用filter()方法筛选就行。给你看个实际例子:
首先假设你的users对象结构是这样的:
const users = { alice123: { id: 1, username: 'Alice', room: 'Lobby' }, bob456: { id: 2, username: 'Bob', room: 'GameRoom' }, charlie789: { id: 3, username: 'Charlie', room: 'Lobby' } };
接下来用这行代码就能得到目标数组:
// 提取所有用户值并筛选出房间为Lobby的用户 const lobbyUsers = Object.values(users).filter(user => user.room === 'Lobby'); console.log(lobbyUsers); // 输出结果: // [ // { id: 1, username: 'Alice', room: 'Lobby' }, // { id: 3, username: 'Charlie', room: 'Lobby' } // ]
补充说明
如果你的users对象嵌套得更深(比如用户信息被包在另一个层级里,比如user.profile.room),只需要调整filter里的属性路径就行:
// 假设用户数据嵌套更深的情况 const nestedUsers = { alice123: { profile: { id: 1, username: 'Alice', room: 'Lobby' } } }; const nestedLobbyUsers = Object.values(nestedUsers).filter(user => user.profile.room === 'Lobby');
这样就能灵活应对不同的嵌套结构啦!
内容的提问来源于stack exchange,提问作者Asaf Aviv
相关产品推荐
相关产品推荐

