从JavaScript对象删除属性,而无需使用delete运算符

时间:2019-07-05 06:45:30

标签: javascript

我需要从对象中提取某些属性,然后分配给新对象。以传统方式,我可以将对象属性所需的内容手动分配给新对象的属性。

当前,我在原始对象上使用delete运算符并创建一个新对象。

有没有更好的方法可以做到这一点。

3 个答案:

答案 0 :(得分:4)

您可以解构一个对象并选择不需要的对象,然后将其余部分作为结果对象。

它使用

var object = { a: 1, b: 2, c: 3 },
    key = 'a',
    { [key]:_, ...result } = object;

console.log(result);

答案 1 :(得分:2)

使用ES6解构运算符,您可以执行

ler arr = [{id:1, name: foo}, {id:2, name: bar}]
arr.map({id, ...item} => {
   return item
})

考虑要删除id属性,以上代码将删除id属性并返回包含name属性的对象。

答案 2 :(得分:0)

您必须通过复制旧属性中的所有属性来创建新对象,但要删除的属性除外:

 const person = {
      name: 'abc',
      age: 25
    };

    console.log(person);

    const age = 'age';

    const newPerson = Object.keys(person).reduce((object, key) => {
      if (key !== age) {
        object[key] = person[key]
      }
      return object
    }, {});

    console.log(newPerson);