Multimap是一种将键映射到列表/值集的数据结构。
是否有一个很好的,不显眼的js库来实现这个数据结构?
编辑 - 我知道我可以“轻松”自己实现它,但我相信将它作为一个独立的抽象是一件好事,所以这些问题的答案不应该“只是自己实现它” ”
答案 0 :(得分:3)
由于@Esailija仅将此作为评论发布,我会将其作为可能的答案提交。使用数组作为值的对象是可行的方法,并通过Underscore.js来操纵值。
var map = {
foo: [1, 2, 3],
bar: ['1', '2', '3']
};
map.foo = _.union(map.foo, [1, 4]); // map.foo -> [1, 2, 3, 4]
虽然它显然取决于您的需求,但这种方法为您提供了遍布各处的通用数据结构,以及一个与集合和列表非常协作的库。在大多数情况下,这种方法的表现应该没问题(只是不要每秒数百万次)。