gpt4 book ai didi

javascript - 从对象中删除属性的真正方法(删除、空、未定义)

转载 作者:行者123 更新时间:2023-12-03 04:35:35 25 4
gpt4 key购买 nike

我有一个大物体,里面有很多key-value对(如 dictionary )。当发生某些事情时我想删除 key-value从这里object 。我知道delete performance issue并将未使用的 key 设置为 undefined/null看起来是个好办法,但我还是担心GC 。我可以设置objectundefinednull但 key ( property )仍然站在那里并持有一些 memory 。当我 delete键,它消失了所以我想这意味着 GCfree key 的memory 。所以我很困惑如何找到 remove 的真正解决方案来自大 key key-value收藏object 。也许有一些建议或引用?

示例:

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 }

最佳答案

使用 Map 怎么样?而不是一个胖 JS 对象?

var dic = new Map()

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

dic.delete("a");

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

关于javascript - 从对象中删除属性的真正方法(删除、空、未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43313607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com