.splice(x,1)不起作用
我使用Node JS开始了我的第一步,事情一切都好,直到我遇到一个奇怪的行为,我既不能理解也找不到解决方法。 它应该是如此简单,一切都有很好的logging,我可以find这么多的例子,我可能会失去一些非常明显的东西,不幸的是。 放了近2天后,我决定寻求一些帮助…提前感谢。
我正在尝试将对象(clientID,套接字信息)存储在一个数组中,并希望在连接丢失时删除一个对象。
我已经构build了一小部分复制行为的代码。
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
有任何想法吗?
谢谢
machines
是一个数组,所以你设置"357973049420265"
– 一个string值 – 作为一个关键。 .splice
只会改变数字键。
我不确定你想要实现什么,但是你要么使用machines = {}
并通过delete
来删除属性,要么使用.push
添加数组元素来让.splice
工作。
如果你使用了一个对象,你可以delete machines[Object.keys(machines).slice(0, 1)]
来完成这个代码似乎试图做的事情,但是你的最终目标还不清楚。