给定一个对象:
let myObject = {
"ircEvent": "PRIVMSG",
"method": "newURI",
"regex": "^http://.*"
};
如何删除属性 regex
以得到以下 myObject
?
let myObject = {
"ircEvent": "PRIVMSG",
"method": "newURI"
};
原文由 johnstok 发布,翻译遵循 CC BY-SA 4.0 许可协议
给定一个对象:
let myObject = {
"ircEvent": "PRIVMSG",
"method": "newURI",
"regex": "^http://.*"
};
如何删除属性 regex
以得到以下 myObject
?
let myObject = {
"ircEvent": "PRIVMSG",
"method": "newURI"
};
原文由 johnstok 发布,翻译遵循 CC BY-SA 4.0 许可协议
JavaScript 中的对象可以被认为是键和值之间的映射。 delete
运算符用于删除这些键,通常称为对象属性,一次一个。
var obj = {
myProperty: 1
}
console.log(obj.hasOwnProperty('myProperty')) // true
delete obj.myProperty
console.log(obj.hasOwnProperty('myProperty')) // false
delete
运算符不直接释放内存,它不同于简单地分配 null
或 undefined
的值--- 属性 本身 被删除从对象。请注意,如果已删除属性的 值 是一个引用类型(一个对象),并且程序的另一部分仍然持有对该对象的引用,那么该对象当然不会被垃圾回收,直到对它的所有引用都被删除消失了。
delete
仅适用于其描述符将其标记为可配置的属性。
原文由 Dan 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答838 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
要从对象中删除属性(改变对象),您可以这样做:
演示
对于任何有兴趣阅读更多相关信息的人,Stack Overflow 用户 kangax 在他们的博客上写了一篇关于
delete
语句的非常深入的博文, _了解删除_。强烈推荐。如果您想要一个 新 对象,其中包含除一些之外的所有原始键,您可以使用 destructuring 。
演示