Добрый день.
Краткая суть. Хочу сделать на сайте блок, с пользователями, кто в данный момент на сайте.
Реализация. Отправляю по сокетам данные о пользователе на сервер. Там набию все все в один один массив и уже обновляю у всех пользователей.
Создание массива. "Пропущены проверки на повторение"
var arr_online_user = [];
arr_online_user["user"] = new Array();
arr_online_user["user"] = new Object();
arr_online_user["user"].userid = userid;
arr_online_user["user"].userip = userip;
arr_online_user["user"].avatar = avatar;
arr_online_user["user"].name = name;
onlineuser = arr_online_user["user"];
checkArrGlobal = checkArrGlobal.concat(onlineuser);
Содержание массива.
[{"userid":"#","userip":"111.11.111.111","avatar":"img/incognito.png","name":"Не авторизован"},{"userid":"3054895","userip":"222.222.22.222","avatar":"public/images/avatars/c0/c93a5b.jpg","name":"Haruhi Suzumiya"},{"userid":"3054896","userip":"333.222.22.222","avatar":"public/images/avatars/c0/c0e9efc389f.jpg","name":"Haruhi"},{"userid":"305","userip":"222.333.22.222","avatar":"public/images/avatars/c0/c0e0fa8eefc3.jpg","name":"Suzumiya"},{"userid":"895","userip":"222.222.333.222","avatar":"public/images/avatars/c0/c0b6055.jpg","name":"IUGIUIh"}]
При удаление(закрытие вкладки) так же приходят данные серверу с данными пользователя. Если пользователь был авторизован то я пытаюсь найти и удалить по userid , если это был был гость то по userip.
Поиск элемента который нужно удалить(реализаци только по ip).
for (var j = 0; j < checkArrGlobal.length; j++) {
if(checkArrGlobal[j].userip.indexOf(data.userip) == -1){
console.log('>>>> Не тот '+data.userip+' == '+JSON.stringify(checkArrGlobal[j].userip));
}else{
//console.log('>>>> Найден пользователь '+data.userip+' ='+j+'= '+JSON.stringify(checkArrGlobal[j].userip));
console.log('>>>> По ключу ='+j+'= содержит '+JSON.stringify(checkArrGlobal[j]));
delete checkArrGlobal[j];
onlineuser_json = JSON.stringify(checkArrGlobal);
break;
}
}
Содержание onlineuser_json после удаления.
Пользовательне найдей в массиве по userip 111.11.111.111
onlineuser_json содержит [null,{"userid":"29040","userip":"111.11.111.111","avatar":"2d3e71e27e3ea972cf9e562.jpg","name":"ski"},{"userid":"4486546","userip":"222.22.22.22","avatar":"4f1e3bd549c4d45ad3.jpg","name":"Olden"}]
Как видете первый элемент масиива null, как правильно удалить данные из массива что бы небыло такого. Из-за null nodejs выдает ошибку и сам модуль на сайте перестает работать.