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