for循环仅迭代一次
我有一个对象的客户端数组,所以我使用for循环来遍历它我有clients.lenght = 2,但它只是迭代。而我没有variables范围的问题在这里。 只是不明白为什么会发生。 码
socket.on('idleDisconnectAllClient', function(receivedData) { LOG("idleDisconnectAllClient"); var clientIndex = findMainIndexByDataBaseID(receivedData.dataBaseID); if (clientIndex != -1) { console.log('clients lenght', clients[clientIndex].data.length); for (var i = 0; i < clients[clientIndex].data.length; i++) { var client = clients[clientIndex].data[i]; client.disconnect(); console.log('client ' + i); } } });
安慰
2016-03-29 04:13:01 - idleDisconnectAllClient clients lenght 2 client 0
jpaljasma – https://stackoverflow.com/users/2079695/jpaljasma帮助我了解这个问题。
当我使用 – client.disconnect()它只是从客户端数组中删除当前客户端。 所以这就是为什么我的循环只进行了一次。
你可以通过ES5的forEach
构造进行迭代:
clients[clientIndex].data.forEach(client => client.disconnect())
(免责声明,这使用ES6中的胖箭头,可能不适用于较旧的节点版本)