test complex array object

JavaScript

function addValue(obj, key, value, socketId) {
    if (obj.hasOwnProperty(key)) {
        obj[key].push({socketid: socketId, user: value});
    } else {
        obj[key] = [{socketid: socketId, user: value}];
    }
}

var online = {};

addValue(online, "room1","userA1","sA1");
addValue(online, "room1","userA2","sA2");
addValue(online, "room2","userB1","sB1");
addValue(online, "room2","userB2","sB2");
addValue(online, "room2","userB3","sB3");
addValue(online, "room3","user3","s3");

console.log(JSON.stringify(online, null, " "));

//delete particular entry knowing all three things- key,value,socketId
//...

function deleteValue(obj, key, value, socketId) {
    if (!obj.hasOwnProperty(key))
        return;
    obj[key] = obj[key].filter(function(x) {
        return x.user != value || x.socketid != socketId
    })
}
                               
deleteValue(online, "room2","userB2","sB2");
console.log(JSON.stringify(online, null, " "));