我使用Node迈出了我的第一步,一切都很顺利,直到我遇到一种奇怪的行为,我既无法理解,也无法找到解决办法。它应该是如此简单,每件事都有很好的文档,我可以找到这么多的例子,我可能会错过一些非常明显的东西,不幸。在这两天之后,我决定寻求帮助.提前谢谢。
我试图将对象(clientID、socket信息)存储在数组中,并希望在连接丢失时删除对象。
我已经构建了一小部分代码来复制这种行为。
var socket = require('socket.io');
var machines = [];
var mach1 = [new socket(), new socket()];
var mach2 = [new socket(), new socket()];
var mach3 = [new socket(), new socket()];
machines["357973049420265"] = mach1;
machines["357973049420266"] = mach2;
machines["357973049420267"] = mach3;
console.log("Before : " + Object.keys(machines));
machines.splice(0,1);
console.log("After : " + Object.keys(machines));结果是:
Before : 357973049420265, 357973049420266, 357973049420267
After : 357973049420265, 357973049420266, 357973049420267有什么想法吗?
Thx
发布于 2015-06-26 18:11:53
machines是一个数组,所以您将"357973049420265" --一个字符串值--设置为键。.splice只会更改数字键。
我不知道您想要实现什么,但是您要么希望使用machines = {}并通过delete删除属性,要么使用.push添加数组元素以使.splice工作。
如果您使用一个对象,您可以执行delete machines[Object.keys(machines).slice(0, 1)]来完成这段代码似乎想要做的事情,但是您的最终目标还不清楚。
https://stackoverflow.com/questions/31079428
复制相似问题