如何复制仅保留当前道具的对象?

时间:2018-07-03 15:19:44

标签: javascript object

我有从后端获取的对象:

form: {
  currentForm: {
    fields: {
      firstField: {
        value: 'value1',
        label: 'label1',
        oneMoreProp: 'oneMoreProp1'
      },
        secondField: {
        value: 'value2',
        label: 'label2',
        oneMoreProp: 'oneMoreProp2'
      },
        thirdField: {
        value: 'value3',
        label: 'label3',
        oneMoreProp: 'oneMoreProp3'
      }
    }
  }
}

我必须复制它,删除不必要的发送道具,像这样:

form: {
  currentForm: {
    fields: {
      firstField: {
        value: 'value1'
      },
        secondField: {
        value: 'value2'
      },
        thirdField: {
        value: 'value3'
      }
    }
  }
}

如何以最佳和最快的方式实施它? 谢谢你的建议。

1 个答案:

答案 0 :(得分:2)

一个主意。您可以映射每个字段,然后仅将其值重新分配。

form = {
  currentForm: {
    fields: {
      firstField: {
        value: 'value1',
        label: 'label1',
        oneMoreProp: 'oneMoreProp1'
      },
      secondField: {
        value: 'value2',
        label: 'label2',
        oneMoreProp: 'oneMoreProp2'
      },
      thirdField: {
        value: 'value3',
        label: 'label3',
        oneMoreProp: 'oneMoreProp3'
      }
    }
  }
}

Object.keys(form.currentForm.fields).map(function(a) {
  form.currentForm.fields[a] = {
    'value': form.currentForm.fields[a].value
  }
})

console.log(
  form
)