首页 > 解决方案 > 如何将两个长度相同的数组的键相互映射?

问题描述

我想将一个数组的键映射到另一个嵌套数组。两个数组的长度相同。

前:

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 },
  ],
];

我很难找到这个问题的起点,特别是因为第二个数组的嵌套结构。

我感谢每一个提示。

标签: 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 result = otherObjectList.map((item, index) => item.map((value) => ({
    ...value,
    ...idListToInsert[index],
})));

console.log(result);


推荐阅读