首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从对象中删除属性(JavaScript)

从对象中删除属性(JavaScript)
EN

Stack Overflow用户
提问于 2008-10-16 18:57:46
回答 33查看 2.7M关注 0票数 6.8K

假设我创建一个对象,如下所示:

代码语言:javascript
运行
复制
let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^http://.*",
};

我应该如何删除属性regex以获得新的myObject,如下所示?

代码语言:javascript
运行
复制
let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
};
EN

回答 33

Stack Overflow用户

回答已采纳

发布于 2008-10-16 18:58:53

要从对象中删除属性(改变对象),可以执行以下操作:

代码语言:javascript
运行
复制
delete myObject.regex;
// or,
delete myObject['regex'];
// or,
var prop = "regex";
delete myObject[prop];

演示

代码语言:javascript
运行
复制
var myObject = {
    "ircEvent": "PRIVMSG",
    "method": "newURI",
    "regex": "^http://.*"
};
delete myObject.regex;

console.log(myObject);

对于任何有兴趣了解更多信息的人,Stack Overflow用户kangax在他们的博客上写了一篇关于delete语句的令人难以置信的深入博客文章。强烈推荐。

如果你想要一个新的对象,除了一些键之外,所有的键都是原来的,你可以使用destructuring

演示

代码语言:javascript
运行
复制
let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^http://.*"
};

const {regex, ...newObj} = myObject;

console.log(newObj);   // has no 'regex' key
console.log(myObject); // remains unchanged

票数 9.1K
EN

Stack Overflow用户

发布于 2014-02-13 01:48:06

JavaScript中的对象可以看作是键和值之间的映射。delete运算符用于一次删除一个键,这些键通常称为对象属性。

代码语言:javascript
运行
复制
var obj = {
  myProperty: 1    
}
console.log(obj.hasOwnProperty('myProperty')) // true
delete obj.myProperty
console.log(obj.hasOwnProperty('myProperty')) // false

delete运算符不直接释放内存,它不同于简单地将nullundefined的值赋给属性,因为属性本身是从对象中删除的。注意,如果一个已删除属性的值是一个引用类型(一个对象),并且程序的另一部分仍然持有对该对象的引用,那么该对象当然不会被垃圾回收,直到对它的所有引用都消失为止。

delete将仅在其描述符将其标记为可配置的属性上工作。

票数 1K
EN

Stack Overflow用户

发布于 2008-10-16 11:03:02

代码语言:javascript
运行
复制
var myObject = {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
    
delete myObject.regex;

console.log ( myObject.regex); // logs: undefined

这在Firefox和Internet Explorer中都有效,我认为它在所有其他浏览器中也有效。

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

https://stackoverflow.com/questions/208105

复制
相关文章

相似问题

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