.splice(x,1) 不工作
.splice(x,1) not working
我使用 Node JS 迈出了第一步,一切顺利,直到我遇到一种我既无法理解也无法找到解决方法的奇怪行为。
它应该非常简单,所有内容都有详细记录,而且我可以找到如此多的例子,但不幸的是,我可能遗漏了一些非常明显的东西。在失去了将近 2 天的时间后,我决定寻求一些帮助...在此先感谢。
我正在尝试将对象(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
有什么想法吗?
感谢
machines
是一个数组,因此您要将 "357973049420265"
—— 一个字符串值 —— 设置为键。 .splice
只会改变 numeric 键。
我不确定你想要达到什么目的,但你要么想使用 machines = {}
并通过 delete
删除属性,要么使用 .push
添加数组元素以获取.splice
上班。
如果您使用了一个对象,您可以delete machines[Object.keys(machines).slice(0, 1)]
完成这段代码似乎想要做的事情,但您的最终目标还不清楚。
我使用 Node JS 迈出了第一步,一切顺利,直到我遇到一种我既无法理解也无法找到解决方法的奇怪行为。 它应该非常简单,所有内容都有详细记录,而且我可以找到如此多的例子,但不幸的是,我可能遗漏了一些非常明显的东西。在失去了将近 2 天的时间后,我决定寻求一些帮助...在此先感谢。
我正在尝试将对象(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
有什么想法吗?
感谢
machines
是一个数组,因此您要将 "357973049420265"
—— 一个字符串值 —— 设置为键。 .splice
只会改变 numeric 键。
我不确定你想要达到什么目的,但你要么想使用 machines = {}
并通过 delete
删除属性,要么使用 .push
添加数组元素以获取.splice
上班。
如果您使用了一个对象,您可以delete machines[Object.keys(machines).slice(0, 1)]
完成这段代码似乎想要做的事情,但您的最终目标还不清楚。