如何巧妙使用`Object.keys`方法将`JS`的一个对象的特定的值赋值给另外一个对象

现在A对象的值是空的,需要从B对象中提取对应的键值对到A对象中。如何快速实现?Object的三个方法,可以将key,values或键值对转为数组,然后就可以用数组的方法了。

有如下需求:

A对象:

let objA= {
        id: "",
        appId: "",
        appkey: "",
        serverUrl: "",
        orgId: "" 
}

B对象:

let objB={
        "appId": "2c5432d755",
        "agentPhone": "133****2345",
        "lastReportTime": null,
        "address": "北京市海淀区",
        "idType": "201",
        "orgId": "lx",
        "serverUrl": "http://www.imqd.cn",
        "companyName": "(生产环境)联想集团有限公司",
        "agentName": "联*1",
        "description": "111",
        "dataState": 1,
        "appkey": "430624199010227319",
        "idNo": "13312342345",
        "telPhone": null,
        "creditCode": "911101088020176135",
        "createTime": "2023-04-04 02:41:49",
        "legalPerson": "杨元庆",
        "id": 4,
        "status": 0
    }

现在A对象的值是空的,需要从B对象中提取对应的键值对到A对象中。如何快速实现?

答案1:

Object.keys(objA).forEach((key) => {
    objA[key] = objB[key];
});

原理,其实就是Object.keys方法的运用。

object-keys

Object的这三个方法,可以将key,values或键值对转为数组,然后就可以用数组的方法了。

Object.keys方法会将ObjA的每一个Key变成数组:

// 运行 Object.keys(objA)的结果为:
[
    "id",
    "appId",
    "appkey",
    "serverUrl",
    "orgId"
]

再循环,去取objB对象中对应的key值,相当于是过滤了该对象。

翻译过来,其实上面的代码不用循环,就像这样写的:

objA.id = objB.id;
objA.appId = objB.appId;
objA.appkey = objB.appkey;
...

最终的结果A对象就有了如下的值:

let objA= {
    "id": 4,
    "appId": "2c54f6d755",
    "appkey": "430624199010227319",
    "serverUrl": "http://www.imqd.cn",
    "orgId": "lx"
}

如果你在web前端开发、面试、前端学习路线有困难可以加我V:imqdcnn。免费答疑,行业深潜多年的技术牛人帮你解决bug。

祝你能成为一名优秀的WEB前端开发工程师!

除特别声明外, 本站所有内容皆为原创,未经许可,禁止转载。转载时请务必以超链接形式标明文章出处和作者信息
  • 967
(0)
打赏 微信扫一扫 微信扫一扫
                       

关于作者:

web前端老罗

贡献:已经在WEB前端圈发表90篇文章了

简介:前端老罗是一位拥有多年web前端开发经验、管理经验、教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。加我微信:imqdcnn可提供开发、技术咨询、答疑、直播讲座等服务

Ta的专栏 | Ta的站点 | 其他SNS

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关于WEB前端圈

我是前端人(imqd.cn)愿景是不管你是想学习前端还是一名专业的WEB前端工程师在这里都能找到你想要的物料。定位为前端人学习进步的一个平台。在这里你能找到前端学习笔记、教学视频资源、案例、前后端分离、前端框架、低代码平台、可视化数据、多端开发、全栈开发等跟前端有关的一切资源!

关于站长:WEB前端老罗(罗老师)是一位拥有多年web前端开发经验、管理经验、IT培训教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。右边加我微信可提供开发、技术咨询、答疑、直播讲座等服务

WEB前端圈二维码

右边添加老罗微信一对一免费私聊
拉你加入官方微信答疑群

To top