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

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

有如下需求:

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的这三个方法,可以将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前端开发工程师!

相关文章
|
4月前
|
监控 负载均衡 JavaScript
有哪些有效的方法可以优化Node.js应用的性能?
有哪些有效的方法可以优化Node.js应用的性能?
286 69
|
5天前
|
存储 消息中间件 人工智能
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
31 11
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
|
3月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法详解
本指南详细介绍在Linux系统中安装和管理Node.js的步骤。首先检查现有环境,包括查看当前版本和清除旧版本;接着通过NodeSource仓库安装最新版Node.js并验证安装结果。推荐使用nvm(Node Version Manager)进行多版本管理,便于切换和设置默认版本。同时,提供常见问题解决方法,如权限错误处理和全局模块迁移方案,以及版本回滚操作,确保用户能够灵活应对不同需求。
275 0
|
3月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
302 80
|
2月前
|
JavaScript 前端开发 开发者
讲述Vue框架中用于对象响应式变化的Object.defineProperty函数。
综上所述,Vue.js通过 `Object.defineProperty()`提供了强大的响应式能力,使得状态管理变得简洁高效。这种能力是Vue.js受到广大开发者青睐的重要原因之一。尽管Vue 3.x使用Proxy替代了该方法,但对于Vue 2.x及其之前版本,`Object.defineProperty()`是理解Vue.js内部工作机制不可或缺的一部分。
124 27
|
5月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
151 23
|
7月前
|
前端开发 JavaScript
有没有方法可以保证在JavaScript中多个异步操作的执行顺序?
有没有方法可以保证在JavaScript中多个异步操作的执行顺序?
281 58
|
5月前
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
JS回收机制方法讲解
|
6月前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
185 1
|
6月前
|
JavaScript 前端开发 Java
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
Array.find() 是 JavaScript 数组方法中一个非常实用和强大的工具。它不仅提供了简洁的查找操作,还具有性能上的独特优势:返回的引用能够直接影响原数组的数据内容,使得数据更新更加高效。通过各种场景的展示,我们可以看到 Array.find() 在更新、条件查找和嵌套结构查找等场景中的广泛应用。 在实际开发中,掌握 Array.find() 的特性和使用技巧,可以让代码更加简洁高效,特别是在需要直接修改原数据内容的情形。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一