繁体   English   中英

不使用删除操作符从 JavaScript 对象中删除属性

[英]Delete a property from JavaScript object without using delete operator

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

目前我在原始对象上使用删除运算符并创建一个新对象。

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

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

它用

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

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

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

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

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

 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM