如何巧妙使用`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 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
17 3
|
16天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
16天前
|
JavaScript
JS 获取对象数据类型的键值对的键与值
JS 获取对象数据类型的键值对的键与值
|
18天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
18 0
|
19天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
19天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
16天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
1天前
|
JavaScript 前端开发
js 操作数组的方法
js 操作数组的方法
12 4
|
5天前
|
JavaScript 前端开发 开发者
JavaScript中的错误处理:try-catch语句与错误对象
【4月更文挑战第22天】JavaScript中的错误处理通过try-catch语句和错误对象实现。try块包含可能抛出异常的代码,catch块捕获并处理错误,finally块则无论是否出错都会执行。错误对象提供关于错误的详细信息,如类型、消息和堆栈。常见的错误类型包括RangeError、ReferenceError等。最佳实践包括及时捕获错误、提供有用信息、不忽略错误、利用堆栈信息和避免在finally块中抛错。
|
9天前
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
js 垃圾回收机制的方法