如何巧妙使用`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前端开发工程师!

相关文章
|
12天前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
15天前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
28天前
|
缓存 监控 前端开发
JavaScript 实现大文件上传的方法
【10月更文挑战第17天】通过以上步骤和方法,我们可以实现较为可靠和高效的大文件上传功能。当然,具体的实现方式还需要根据实际的应用场景和服务器要求进行调整和优化。
|
15天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
15天前
|
缓存 JavaScript UED
js中BOM中的方法
【10月更文挑战第31天】
|
14天前
|
JavaScript 前端开发
.js方法参数argument
【10月更文挑战第26天】`arguments` 对象为JavaScript函数提供了一种灵活处理参数的方式,能够满足各种不同的参数传递和处理需求,在实际开发中具有广泛的应用价值。
32 7
|
15天前
|
JavaScript 前端开发
`Object.create()` 方法的参数
【10月更文挑战第29天】`Object.create()` 方法的参数提供了多种创建对象和控制对象属性及继承关系的方式,开发人员可以根据具体的需求灵活运用,以实现更高效、更符合设计要求的对象创建和继承机制。
|
14天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
54 4
|
15天前
|
设计模式 JavaScript 前端开发
js中new和object.creat区别
【10月更文挑战第29天】`new` 关键字和 `Object.create()` 方法在创建对象的方式、原型链继承、属性初始化以及适用场景等方面都存在差异。在实际开发中,需要根据具体的需求和设计模式来选择合适的方法来创建对象。
|
15天前
|
设计模式
在实际开发中,什么时候应该使用 `new` 关键字,什么时候应该使用 `Object.create()` 方法?
【10月更文挑战第29天】`new` 关键字适用于创建具有特定类型和初始化逻辑的对象实例,以及实现基于原型链的继承;而 `Object.create()` 方法则适用于基于现有对象创建相似对象、避免构造函数的副作用、创建具有特定原型链的对象等场景。在实际开发中,需要根据具体的需求和设计模式来选择合适的方法来创建对象,以实现更高效、更灵活的代码结构。