在JavaScript中高效地删除对象
Delete object in JavaScript efficiently
在服务器端,我有如下映射:
-
IDMap将publicKey散列到包含{gameID,clientID}的元数据对象
-
gameSessionList将gameID散列到包含游戏所有逻辑处理程序的gameSession对象
所以我的问题是,我该如何安全、干净地高效删除gameSession?
现在,我正在做
delete this.gameSessionList[this.IDMap[publicKey].gameID];
delete this.IDMap[publicKey];
但我不确定这是否是最好的方法。比如这里到底发生了什么?我的理解是gameSessionList中的密钥"gameID"已被删除,如果稍后引用,则应未定义,而附加的gameSession对象则位于那里等待垃圾收集器收集。IDMap中的密钥"publicKey"也会出现同样的情况。
我说得对吗?我想我只是想从一个较低的层面了解整个过程,看看它做得是否正确。
或者可能我弄错了,当如上所述进行删除时,我不确定哪一个被删除了,键还是值。通过"删除",真正发生了什么?
http://perfectionkills.com/understanding-delete/
我也使用删除。但如果您delete
但对象正在为其他人使用,则无需执行任何操作并delete
return false
。
delete
是为此创建的,应该用于此。这是一个原生功能。没有比这更好的实施了。
当delete
打印结果时检查true
;在这种情况下,成功。但是,如果您使用var
进行声明,则此处无需执行任何操作。lol
例如,在控制台浏览器中:
v1 = 1;
var v2 = 2;
delete v1; //this print true.
delete v2; //this print false.
相关文章:
- 解析JSON并从中删除对象会出错
- 在特定条件下从存储在localStorage中的阵列中删除对象
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 正在从列表中删除对象
- 删除对象时终止setInterval
- 在JavaScript中高效地删除对象
- 使用javascript(ajax,jquery?)从表中删除对象(用户等)
- 从范围中删除对象时,它会在 Angularjs 中隐藏其余对象
- 如何正确地从数组中删除对象
- 捕捉.svg — 单击其中一个元素时删除对象
- 如何删除对象数组中的对象:jquery
- 下划线.js,根据键值删除对象数组中的重复项
- 如何在Immutable中从数组中删除对象
- 删除对象属性在执行删除操作之前生效
- 使用indexOf从列表中删除对象
- 从数组中删除对象
- 如何使用.bind(this)删除对象的事件侦听器
- 正在创建事件侦听器以从本地存储中删除对象
- 如何通过引用(javascript)从数组中删除对象
- 如何按条件删除对象中的对象