2012-07-04 30 views
8

Multimap, anahtarı bir liste/değerler grubuna eşleyen bir veri yapısıdır.Multimap veri yapısının javascript karşılığı var mı?

Bu veri yapısını uygulayan iyi, göze batmayan bir js kitaplığı var mı?

Edit - Kendimi "kolayca" uygulayabildiğimi biliyorum, ama tek başına bir soyutlama olarak iyi bir şey olduğunu düşünüyorum, bu soruların yanıtları "sadece kendiniz yapmayın".

+5

Dizileri değer olarak taşıyan nesne? – Esailija

+0

+ [Underscore.js] 'ye atlayın (http://underscorejs.org/) ve işinize yarayacaksınız! – Svend

+0

@Esailija, Java'da 'Map >' işlevini kullanabilirsiniz, ancak birisi açıkça, multimap'ın Java'da kodlamak için yeterince önemli olduğunu düşündü. Neden JS değil? http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Multimap.html – ripper234

cevap

2

@Esailija bunu yalnızca bir yorum olarak bildirdiği için, bunu olası bir yanıt olarak göndeririz. Dizileri değer olarak kullanan nesneler gitmek ve Underscore.js aracılığıyla değerleri işlemek için yoludur. bu besbelli gereksinimlerine bağlıdır iken

var map = { 
    foo: [1, 2, 3], 
    bar: ['1', '2', '3'] 
}; 

map.foo = _.union(map.foo, [1, 4]); // map.foo -> [1, 2, 3, 4] 

, bu yaklaşım size jenerik veri her yere gider yapılarını ve koleksiyonları ve listeleri ile çok güzel çalışan bir kütüphane verir. Çoğu amaç için, bu yaklaşımın performansı iyi olmalıdır (sadece saniyede milyonlarca kez yapmayın).

+0

Yorumumu gör: Bir Liste ve bir Dizi kullanarak uygulama yeteneği bir "git-git" multimap sınıfına sahip olmamak için bir bahane değildir. Tabii, bunu bir sıfırdan yazmak yerine kullanabilirim, fakat zaten kullandığım bir kütüphane (ör. JQuery) bir multimap sınıfına sahip olsaydı, bunu dizilerle oynamaktan ziyade kullanırdım. – ripper234

İlgili konular