javascript - 映射两个数组
问题描述
我有两个数组。
let A = [{
"id": 22,
"name": "ABC",
"createdDate": "2021-04-19T05:55:41.247+0000",
"modifiedDate": null
}, {
"id": 23,
"name": "DEF",
"createdDate": "2021-04-19T05:55:41.247+0000",
"modifiedDate": null
}, {
"id": 24,
"name": "GHI",
"createdDate": "2021-04-19T05:55:41.247+0000",
"modifiedDate": null
}]
let B = [{
"key": "selectedId",
"value": "id"
}, {
"key": "selectedName",
"value": "name"
}]
我想映射这两个数组。就像下面的数组一样。
let C = [{
selectedId: 22,
selectedName: "ABC"
}, {
selectedId: 23,
selectedName: "DEF"
}, {
selectedId: 24,
selectedName: "GHI"
}]
下面显示了我到目前为止所尝试的内容。我不知道如何像上面的数组一样映射数据。如果有人能回答这个问题,那将是一个巨大的帮助,谢谢。
A.forEach(item => {
B.forEach(element => {
});
});
解决方案
您可以将条目与所需的键/值对映射。
const
data = [{ id: 22, name: "ABC", createdDate: "2021-04-19T05:55:41.247+0000", modifiedDate: null }, { id: 23, name: "DEF", createdDate: "2021-04-19T05:55:41.247+0000", modifiedDate: null }, { id: 24, name: "GHI", createdDate: "2021-04-19T05:55:41.247+0000", modifiedDate: null}],
keys = [{ key: "selectedId", value: "id" }, { key: "selectedName", value: "name" }],
result = data.map(o =>
Object.fromEntries(keys.map(({ key, value }) => [key, o[value]]))
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- href - 万维网。在带有 href 的 asp.net 核心视图中未解决
- javascript - 使用 ReactJS 单击按钮时如何返回从 REST API (ExpressJS) 保存的 JSON 响应?
- vue.js - 如何在 Vue 中为我的导航添加路线?
- java - 尝试使用 Google 登录凭据在 Firebase 上重新进行身份验证时出错
- botframework - 当用户卸载我的 Microsoft 团队应用程序时,是否有任何回调或事件可以让我获取用户详细信息?
- reactjs - 使用 React Hooks 进行依赖注入
- bash - 引导脚本中的某些命令不起作用
- java - Eclipse Activiti Designer 自定义扩展
- ios - 条件绑定的初始化程序必须具有 Optional 类型,而不是 '[String]' 保护让洗牌时
- python - 我可以手动重新定义 Python 列表的加法和乘法吗?