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

7445

给定一个对象:

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

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

let myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI"
};
38个回答

5

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


obj = Object.fromEntries(
    Object.entries(myObject).filter(function (m){
        return m[0] != "regex"/*or whatever key to delete*/
    }
))

console.log(obj)

您也可以使用Object.entries将对象视为类似于a2d数组,并像在普通数组中一样使用splice来删除元素,或者就像处理数组一样对对象进行过滤,然后将重构后的对象赋值回原始变量。


3
我们可以通过使用delete运算符轻松地删除对象的任何属性。

const object = {
  prop1: 10,
  prop2: 20,
  prop3: 30,
  "test prop": "This is test props"
}
console.log(object); // will print all 4 props

delete object.prop1;
delete object["test prop"];

console.log(object); // it will print only prop2 and prop3

查看文档:MDN

虽然这段代码可能回答了问题,但是提供关于为什么和/或如何回答问题的额外上下文可以提高其长期价值。 - Donald Duck

2

删除对象的两种方式

  1. using for ... in

     function deleteUser(key) {
    
         const newUsers = {};
         for (const uid in users) {
             if (uid !== key) {
                 newUsers[uid] = users[uid];
             }
    
         return newUsers
     }
    

或者

delete users[key]

1
所以您建议删除一个属性时,应该将整个对象复制到一个新对象中,而不包括目标属性?!? - mickmackusa
1
这是有效的代码吗?好像缺少一个 }。您可以编辑您的答案,但请不要包含“Edit:”、“Update:”或类似的内容,答案应该看起来像是今天写的。 - Peter Mortensen

2
我们可以使用以下方法来删除对象的属性:
  1. 使用 delete object.property
  2. 使用 delete object['property']
  3. 使用 rest,删除多个属性
请注意保留 HTML 标签。

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

delete myObject.regex; // using delete object.property

// Or 

delete myObject['regex1']; // using delete object['property']

const { regex2, regex3, regex4, ...newMyObject } = myObject;

console.log(newMyObject);


1

简短回答

var obj = {
  data: 1,
  anotherData: 'sample'    
}
delete obj.data //this removes data from the obj

你现在剩下的是:

var obj = {
  anotherData: 'sample'    
}

1

在JavaScript中,有两种常见的方法可以从一个对象中删除属性。

第一种可变的方法是使用delete object.property操作符。

第二种方法是不可变的,因为它不会修改原始对象,而是调用对象解构和展开语法:const {property, ...rest} = object


1
您可以使用“delete property[key]”从对象中删除属性。

1

这是我的做法。

const obj = {
  name: 'John',
  age: 30,
  gender: 'male'
};

delete obj.age;

console.log(obj); // { name: 'John', gender: 'male' }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接