• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

.splice(x,1)不起作用

arrays 来源:Miguel Araujo 6次浏览

我使用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)]来做这个代码似乎试图做的事情,但是你的最终目标还不清楚。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)