使用new Map()分组数组后如何通过.get()获取对应的键和值
你代码中调用MapArrayIntoGroups.get()时没有传入参数,所以无法得到预期结果。Map实例的get方法需要接收一个键作为入参,返回该键对应存储的值,下面是不同场景下的正确访问方式:
1. 已知目标ID,直接获取对应分组
比如要查询ID为1的分组数组,写法如下:
const targetGroup = MapArrayIntoGroups.get(1) console.log(targetGroup) // 输出ID为1的所有todo项组成的数组
2. 获取全部分组的键(所有分组对应的ID值)
调用Map实例的keys()方法会返回包含所有键的迭代器,转成数组即可直接操作:
const allGroupIds = Array.from(MapArrayIntoGroups.keys()) console.log(allGroupIds) // 输出所有分组对应的ID值数组
3. 获取全部分组的值(所有的分组内容数组)
调用Map实例的values()方法会返回包含所有值的迭代器,转成数组即可直接操作:
const allGroups = Array.from(MapArrayIntoGroups.values()) console.log(allGroups) // 输出所有分组数组组成的二维数组
4. 遍历所有键值对
可以选择for...of或者forEach两种方式遍历:
// 方式1:for...of遍历 for (const [id, group] of MapArrayIntoGroups) { console.log('分组ID:', id) console.log('分组内容:', group) } // 方式2:forEach遍历 MapArrayIntoGroups.forEach((group, id) => { console.log('分组ID:', id) console.log('分组内容:', group) })
你之前尝试的MapArrayIntoGroups.get(value)逻辑有误,get方法是通过键查询值,如果需要通过值反查对应的键,自行遍历匹配即可。
内容的提问来源于stack exchange,提问作者Thomas Degroot
相关产品推荐
相关产品推荐

