Map
对象来表示属性与值之间的映射关系。我有类似于以下形式的对象:
{key1:value1_1,key2:value2_1},..... {key1:value1_N,key2:value2_N}
我希望能够基于它们的 key1 和 key2 值同时对它们进行分组。
例如,我想能够根据 x
和 y
进行以下内容的分组:
[{x:3,y:5,z:3},{x:3,y:4,z:4},{x:3,y:4,z:7},{x:3,y:1,z:1},{x:3,y:5,z:4}]
获取包含以下内容的地图:
{x:3,y:5} ==> {x:3,y:5,z:3},{x:3,y:5,z:4}
{x:3,y:4} ==> {x:3,y:4,z:4},{x:3,y:4,z:7}
{x:3,y:1} ==> {x:3,y:1,z:1}
在Python中,我会使用元组作为字典的键。ES6 Map 允许任意对象作为键,但使用标准等式算法(===
),因此据我所知,对象只能按引用相等。
如何使用ES6 Map 实现这种分组?或者,如果有一种优雅的方式,可以使用普通JS对象来解决。
我不想使用外部集合库 - 但如果有更好的解决方案,我也有兴趣了解它。
WeakMap
来使其内存效率更高。可能不行。 - Ry-