我正在尝试使用新的(ES6)Map
对象来表示属性和值之间的映射。
我有类似于以下形式的对象:
{key1:value1_1,key2:value2_1},..... {key1:value1_N,key2:value2_N}
我想根据它们的 key1和key2 值对它们进行分组。
例如,我希望能够通过x
and对以下内容进行分组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 映射允许任意对象作为键,但使用标准的相等算法 ( ===
),因此对象只能通过引用来判断。
如何使用 ES6 映射完成这种分组?或者,如果我忽略了一种优雅的方式,则可以使用普通 JS 对象的解决方案。
我宁愿不使用外部收藏库 - 但如果有更好的解决方案使用我也有兴趣了解它。