2015-11-05 24 views
0

我想做一種維恩圖,我有一個數組數組,它​​存儲了每個唯一集合中的數據。因此類似於:在數組的javascript數組的變量集中查找相似點和差異。

array[0] = [1, 2, 3, 4] 
array[1] = [2, 3, 4, 5] 
array[2] = [3, 4, 6, 10, 15, 20] 
array[3] = [15, 20, 25] 

在原始數組集合中最多可能有10個數組。

我想要做的是找到組之間的相似性,但也有能力獲得排除集。例如,如果我想在上面的例子中找到第一個和第二個數組之間的相似性,但排除第三個數組,我最終會得到:[2],但不是[3,4],因爲它不在第三組中。我希望所有的可能性都可用:選擇儘可能多的數組並排除儘可能多的數組。

有沒有簡單的方法來做到這一點?我在考慮jquery的課程。要求排除陣列中的每個條目並排除所有內容。但我不知道這是否是正確的方式。我需要閱讀每個陣列的每個內容並將它們結合起來嗎?

回答

1

看那underscore.js庫,讓你做一套操作,如:

_.difference([1, 2, 3, 4, 5], [5, 2, 10]); 
=> [1, 3, 4] 

_.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); 
=> [1, 2] 
+0

這似乎有用!我很好奇它的速度會有多快,因爲10組中有很多排列組合,我需要將結果排序爲從最常見發生到最不常見發生的熱圖。任何關於如何手動執行的建議都會非常棒!雙重循環是唯一要做的事情嗎? –

+0

我們不做你的功課。您需要嘗試一些內容,並在必要時創建一個新問題。 – ergonaut