javascript - 如何将两个长度相同的数组的键相互映射?
问题描述
我想将一个数组的键映射到另一个嵌套数组。两个数组的长度相同。
前:
const idListToInsert = [{ idToInsert: 1 }, { idToInsert: 3 }, { idToInsert: 4 }];
const otherObjectList = [
[{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }],
[{ id: 5 }, { id: 6 }, { id: 7 }],
[{ id: 8 }, { id: 9 }],
];
目标:
const targetList = [
[
{ id: 1, idToInsert: 1 },
{ id: 2, idToInsert: 1 },
{ id: 3, idToInsert: 1 },
{ id: 4, idToInsert: 1 },
],
[
{ id: 5, idToInsert: 3 },
{ id: 6, idToInsert: 3 },
{ id: 7, idToInsert: 3 },
],
[
{ id: 8, idToInsert: 4 },
{ id: 9, idToInsert: 4 },
],
];
我很难找到这个问题的起点,特别是因为第二个数组的嵌套结构。
我感谢每一个提示。
解决方案
这是我能想到的最清晰的代码..
const idListToInsert = [{ idToInsert: 1 }, { idToInsert: 3 }, { idToInsert: 4 }];
const otherObjectList = [
[{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }],
[{ id: 5 }, { id: 6 }, { id: 7 }],
[{ id: 8 }, { id: 9 }],
];
const result = otherObjectList.map((item, index) => item.map((value) => ({
...value,
...idListToInsert[index],
})));
console.log(result);
推荐阅读
- python - 解析大文件的有效方法
- c# - 将 ByteArray byte[] 转换为文件对象 C#
- amazon-eks - EKS 和标签 k8s.io/cluster-autoscaler/node-template/label 未分配给工作节点
- facebook - Facebook SDK 不返回 Instagram 媒体
- java - 未生成 OneToMany 复合键
- php - 在 Symfony 中为通过 SSH 本地端口转发发送的请求获取客户端端口号
- c - 为什么 if( union member) 评估为 True?
- android - 修改“Skype for Business SDK”摄像头实例的旋转
- postgresql - 用于 postgresql 数据库复制的 logstash 输入插件(忽略上次运行状态)
- elasticsearch - 弹性搜索 + 心跳 - 是否可以检查 java 应用程序是否正在运行?