【问题标题】:How to assign object in typescript and replace object name?如何在打字稿中分配对象并替换对象名称?
【发布时间】:2018-05-22 18:30:01
【问题描述】:

我收到来自后端 data.response.details 的响应,我正在尝试创建一个名为 newMember 的新对象来替换 details 名称。同样,我想将所有属性从details 推送到newMember?如何使用对象分配来完成这些任务?

main.ts

    public after(args: IResult , data: any) {
        const res: IResult = data.response.details;
                const newMember= Object.assign({}, res);
                return Promise.resolve(this.getInformation(args, newMember));
    }


data.response.details

    "patientProfile": {
                "firstName": "Rob",
                "lastName": "ALLen",
                "memberStatus": "Active"
                }

预期的 json 应该是

"newMember": {
"patientProfile": {
                    "firstName": "Rob",
                    "lastName": "ALLen",
                    "memberStatus": "Active"
                    }
}

【问题讨论】:

  • 那么具体是什么问题呢?预期结果是什么?
  • 你已经这样做了,有什么问题?
  • 我希望在响应中创建 newMember 对象并在承诺中发送它,但它没有发生
  • 解释中显然缺少一些东西。不知道具体是什么问题。我们也不知道this.getInformation 返回什么
  • 一切正常我有数据只是试图将数据映射到新对象

标签: javascript typescript


【解决方案1】:

你可以简单地做一个作业:

const newObj = { newMember: data.response.details };

现在newObj.newMember 拥有data.response.details 的所有属性。请注意,这会创建详细信息的浅表副本。


如果由于某种原因您想要创建详细信息的深层克隆,因为您只是使用简单的字符串值,您可以这样做:

const newObj = { newMember: JSON.parse(JSON.stringify(data.response.details)) };

这可能是不必要的。

【讨论】:

    【解决方案2】:

    使用以 res 为值的 newMember 属性创建一个对象

     const newMember = Object.assign({},{"newMember": data.response.details});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 2017-03-22
      • 2021-06-03
      • 1970-01-01
      相关资源
      最近更新 更多