Multimap是一种将键映射到值列表/值集的数据结构。
有没有一个好的、不显眼的 js 库来实现这个数据结构?
编辑- 我知道我可以自己“轻松地”实现它,但我相信将它作为一个独立的抽象是一件好事,所以这个问题的答案不应该是“自己实现它”。
Multimap是一种将键映射到值列表/值集的数据结构。
有没有一个好的、不显眼的 js 库来实现这个数据结构?
编辑- 我知道我可以自己“轻松地”实现它,但我相信将它作为一个独立的抽象是一件好事,所以这个问题的答案不应该是“自己实现它”。
由于@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]
虽然这显然取决于您的需求,但这种方法为您提供了无处不在的通用数据结构,以及一个可以很好地处理集合和列表的库。对于大多数目的,这种方法的性能应该很好(只是不要每秒执行数百万次)。