首页 > 解决方案 > 通过删除属性但保留其内容来转换对象

问题描述

我正在尝试找到一种“减少”对象的方法。这就是我所拥有的

{ _attributes: { name: 'titolo', description: 'il titolo della sezione' },
  field:
   [ { _attributes:
        { name: 'titolo',
          type: 'input',
          label: 'titolo',
          value: 'titolo' } },
     { _attributes:
        { name: 'colore',
          type: 'input',
          select: 'giallo,blu',
          label: 'seleziona il colore',
          value: 'titolo' } }
    ] 
}

这就是我想要的

{  name: 'titolo', description: 'il titolo della sezione' ,
  field:
   [ 
        { name: 'titolo',
          type: 'input',
          label: 'titolo',
          value: 'titolo' } ,

        { name: 'colore',
          type: 'input',
          select: 'giallo,blu',
          label: 'seleziona il colore',
          value: 'titolo' } 
    ] 
}

基本上删除 _attributes 属性,但保留其内容。我想知道除了循环对象之外是否有一些聪明的方法。

标签: javascriptnpmlodash

解决方案


let obj = {
  _attributes: {
    name: 'titolo',
    description: 'il titolo della sezione'
  },
  field: [{
      _attributes: {
        name: 'titolo',
        type: 'input',
        label: 'titolo',
        value: 'titolo'
      }
    },
    {
      _attributes: {
        name: 'colore',
        type: 'input',
        select: 'giallo,blu',
        label: 'seleziona il colore',
        value: 'titolo'
      }
    }
  ]
}

obj = { ...obj._attributes, ...obj };
delete obj._attributes;
obj.field = obj.field.map(el => el._attributes);

console.log(obj);


推荐阅读