【发布时间】:2023-01-12 23:39:43
【问题描述】:
我有以下 json 对象。我正在尝试过滤数据并获取名称等于 bq89 的 socketId 值```名称:“bq89”
const rooms = {
"room1": {
"socketId1":{
id: "123",
name: "the person name 1"
},
"socketId2":{
id: "bq89",
name: "the person name 2"
}
},
"room2": {
"socketId11":{
id: "jkl",
name: "room 2 name 1"
},
"socketId22":{
id: "lpo",
name: "room 2 name 2"
}
}
}
const socketId = rooms['room1'].filter(e=> {return e.name === 'bq89'})
console.log(socketId)
// desired output would be: socketId2
【问题讨论】:
-
filter是为了数组,但这里没有数组。您是否打算使用数组而不是编号的对象属性? (你可能应该这样做。) -
使用来自 api 的数据。
-
在这种情况下,如果 API 返回格式不正确的数据,那么您需要解决这个问题。例如,您可以开始 here 以迭代对象属性并构造一个仅包含您想要的属性的新对象。总体而言,您拥有的是一个损坏的数据结构,因此您需要编写自定义代码来对其执行标准操作。 (或者编写代码将结构转换为更有用的东西,然后对其执行标准操作。)
标签: javascript