给定一个对象:
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); // 保持不变