You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript Map中按值分组生成对应子Map

按Map的Value拆分出多个子Map的解决方案

可以通过遍历主Map并按Value分组的方式实现,核心是用一个容器Map来管理每个Value对应的子Map,代码实现如下:

// 模拟API返回的动态数据创建主Map(注意JavaScript中Map首字母需大写)
const mainMap = new Map();
// 填充示例数据
mainMap.set(1, 'a');
mainMap.set(2, 'b');
mainMap.set(3, 'c');
mainMap.set(4, 'a');
mainMap.set(5, 'c');
mainMap.set(6, 'b');
mainMap.set(7, 'c');
mainMap.set(8, 'a');
mainMap.set(9, 'c');
mainMap.set(10, 'c');
mainMap.set(11, 'a');
mainMap.set(12, 'c');
mainMap.set(13, 'a');
mainMap.set(14, 'c');
mainMap.set(15, 'c');
mainMap.set(16, 'e');
mainMap.set(17, 'f');

// 按Value分组创建子Map
const groupedMaps = new Map();

for (const [key, value] of mainMap) {
  // 如果当前Value对应的子Map不存在,就新建一个
  if (!groupedMaps.has(value)) {
    groupedMaps.set(value, new Map());
  }
  // 将当前键值对添加到对应的子Map中
  groupedMaps.get(value).set(key, value);
}

// 使用示例:获取Value为'a'的子Map
const mapA = groupedMaps.get('a');
console.log(mapA); // 输出包含键1、4、8、11、13的Map

// 遍历所有子Map
for (const [value, subMap] of groupedMaps) {
  console.log(`Value为${value}的子Map:`, subMap);
}

关键逻辑说明

  • 用groupedMaps作为分组容器,它的Key是原Map的Value,Value是对应分组的子Map
  • 遍历主Map时,先检查当前Value是否已有对应的子Map,没有则创建
  • 把每个键值对追加到对应Value的子Map中,完成分组

内容的提问来源于stack exchange,提问作者DiggingCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:56:21