.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

回到顶部