.splice(x,1)不起作用
我使用Node JS开始了我的第一步,事情一切都好,直到遇到一个奇怪的行为,我无法理解,也找不到解决方法。它应该是如此简单,一切都有很好的记录,我可以找到这么多的例子,我可能会遗漏一些很明显的东西,不幸的是。经过近两天的放松,我决定寻求一些帮助......提前致谢。.splice(x,1)不起作用
我想存储对象(clientID,套接字信息)在一个数组中,并希望在连接丢失时删除一个对象。
我已经构建了一小部分复制行为的代码。
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
回答:
machines
是一个数组,所以要设置"357973049420265"
- 字符串值 - 作为重点。 .splice
只会更改数字键。
我不知道你想达到什么样的,但是你要么需要使用machines = {}
,并通过delete
删除属性或使用.push
添加数组元素得到.splice
工作。
如果你使用了一个对象,你可以做delete machines[Object.keys(machines).slice(0, 1)]
来做这个代码似乎试图做的事情,但是你的最终目标还不清楚。
以上是 .splice(x,1)不起作用 的全部内容, 来源链接: utcz.com/qa/259876.html