删除数组的“父索引”有什么更好的方法?
enter code here
我在做一个nodejs应用程序…让我显示我的问题;;
//id = dinamic string.. "user1", "user2", "userX" usersArray = []; usersArray[id]["socket"] = socket;
当套接字结束时,我想从usersArray中移除[id] ..但是此时id
不是可用的
socket.on('end', function () { ?........? socket.end(); });
怎么做?
有socket.id
这是一个很好的每个套接字的标识符。 然后,您可以使用关联数组而不是usersArray
:
var usersArray = {}; usersArray[socket.id] = some_user_data;
然后你可以使用delete usersArray[socket.id]
来delete usersArray[socket.id]
这个条目。
假设你可以通过socket.on('end')函数访问thisId,你可以这样做:
socket.on('end', function () { usersArray.splice(thisId, 1); socket.end(); });
根据你添加套接字到你的userArray
(这似乎是一个object
而不是一个array
注意到你的id
的例子),你可以考虑添加一个新的callback套接字,当你把它添加到数组
usersArray[someId].socket = socket; // New callback to just delete the usersArray entry usersArray[someId].socket.on('end', function() { delete usersArray[someId]; });
保持当前socket.on
不变:
socket.on('end', function () { /* No new code here, as the deletion happens when the socket is added to usersArray! */ socket.end(); });