首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从对象中删除属性的正确方法(delete vs null vs undefined)

从对象中删除属性的正确方法(delete vs null vs undefined)
EN

Stack Overflow用户
提问于 2017-04-10 09:05:54
回答 1查看 985关注 0票数 0

我有一个很大的对象,里面有很多key-value对(比如dictionary)。当发生一些事情时,我想从这个object中删除key-value。我知道delete performance issue,并将未使用的键设置为undefined/null看起来是一个很好的方法,但我仍然担心GC。我可以将object设置为undefinednull,但是key (property)仍然在那里并持有一些memory。当我delete key时,它就消失了,所以我猜这意味着GCfree这个key的memory。所以从一个大的key-value集合object中找到remove密钥的真正解决方案对我来说是令人困惑的。也许是一些建议或参考?

示例:

代码语言:javascript
运行
复制
var dic = {};

dic.a = 1234;
dic.b = "hello";
dic.c = "!#$";

delete dic.a;         // { b: "hello", c: "!#$" }
dic.b = undefined;    // { b: undefined, c: "!#$" }
dic.c = null;         // { b: undefined, c: null }
EN

回答 1

Stack Overflow用户

发布于 2017-04-10 10:05:00

如果使用Map而不是胖JS对象呢?

代码语言:javascript
运行
复制
var dic = new Map()

dic.set("a", 1234);
dic.set("b", "hello");
dic.set("c", "!#$");

dic.delete("a");

根据您的用例,您还可以考虑使用Weak Maps

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43313607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档