【发布时间】:2017-09-05 03:06:27
【问题描述】:
我有一个类似下面的 JSON 对象:
var users = {
ross: [
{
socket_id: 'K7XhUcIXAQFkmhK7AAAA',
community_id: 2
},
{
socket_id: 'gWBy0adi2e3KoIWuAAAC',
community_id: 2
},
{
socket_id: 'PRQ2czNZuvatsy8cAAAD',
community_id: 2
},
{
socket_id: 'R-EGVCDc5jWQV50KAAAF',
community_id: 2
}
],
laura: [
{
socket_id: 'VCp2NxY42LMNvOclAAAE',
community_id: 2
},
{
socket_id: 'MDZe6Oe8U4xzmUjxAAAG',
community_id: 2
}
],
john: [
{
socket_id: 'Omn3VQKyuYHm2JNdAAAH',
community_id: 2
}
]
}
现在,当套接字断开连接时,我想从该用户的数组中删除该套接字对象。现在我写了一个函数来从 Json 数组中删除 Json 对象。
var cleaner= function(arr, id) {
for (var i = 0; i < users.length; i++) {
var cur = users[i];
if (cur.id === id) {
arr.splice(i, 1);
break;
}
}
};
cleaner(users, socket.id);
上述功能的唯一问题是我需要传递该 JSON 数组所在的键的名称。
基本上,首先我想找到那个 JSON 数组的键名,当我得到键名时,我会将它传递给 cleaner function。 但是我不知道如何找到JSON数组的键名。
【问题讨论】:
-
也许你可以使用一些正则表达式来找到它并用''(空)替换它。不确定这是否是正确的做法,但肯定会有效。
-
cur.id === uniqueIdid属性来自哪里,uniqueId是什么? -
函数中传入的socket id。我已经编辑了这个问题。对不起。
-
@shahakshay94 但
curr仍然没有id属性
标签: javascript arrays json sockets