我一直在 io.js 中尝试 ES6 Map 并意识到我不能执行以下操作:
var map = new Map()
map.set( {key:"value"}, "some string");
map.get( {key:"value"} ); // undefined. I want "some string"
这是因为 {key:"value"} === {key:"value"} 为 false。
我需要能够使用对象作为键,但不需要实际对象来查找值,就像 java HashMap 如何使用 hashcode 和 equals 一样。这可能吗?
- 如果缺乏对象标识源于序列化-反序列化往返,只需为它们提供一个唯一的 ID,并使用该 ID 作为密钥
- 如果您可以确定其余属性依赖于该子集或与您的操作无关,则根据其属性的子集计算键
- 实现您自己的哈希映射和对象哈希。对于主机对象来说这可能会很棘手,但对于 JSON 兼容的数据来说应该相当简单
- 每次获取或设置之前进行 JSON 编码。它的效率非常低,并且仅适用于 JSON 可序列化对象。但比之前的选项更容易实现
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)