如何从JavaScript对象中移除属性?

发布时间 2023-10-07 20:44:02作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=如何从JavaScript对象中移除属性?

给定一个对象:

let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^http://.\*"
};

如何移除属性regex以得到下面的myObject

let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI"
};


要从对象中移除属性(改变对象),可以这样做:

delete myObject.regex;
// 或者,
delete myObject['regex'];
// 或者,
var prop = "regex";
delete myObject[prop];

示例代码:

var myObject = {
    "ircEvent": "PRIVMSG",
    "method": "newURI",
    "regex": "^http://.\*"
};
delete myObject.regex;

console.log(myObject);

对于有兴趣了解更多的人,Stack Overflow用户kangax在他的博客上写了一篇关于delete语句的深度文章, Understanding delete。强烈推荐阅读。

如果你想要一个新的对象,其中包含原始对象的所有键,除了一些,你可以使用解构赋值。

示例代码:

let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^http://.*"
};

// 将key为'regex'的值赋给变量\_,表示它将未被使用
const {regex: _, ...newObj} = myObject;

console.log(newObj);   // 没有'regex'键
console.log(myObject); // 保持不变