2015-04-29 52 views
2

對於我目前的項目,我需要找到一種方法來「模糊」 - 指紋的JavaScript數組客戶端。如何「模糊」指紋陣列

問題是數組內的元素可能隨時間而改變。通過改變,我的意思是順序是穩定的,但一些元素可能會被刪除,其他元素可能會被包含。現在我需要找到一種產生完全相同指紋的方法(在給定的閾值內)。

我目前正在考慮一種部分匹配的實現,但我很好奇別人會怎麼做。

+3

計數,因爲這是它似乎更適合於https://programmers.stackexchange.com/ –

+0

你也許可以給出你的陣列的外觀的例子的概念問題就像在某些時候,你想在這些階段創建什麼樣的指紋? – basilikum

回答

1

你可以將你的數組包裝到一個對象中併爲該對象添加一個修改計數器。在每個陣列修改中,您必須遞增修改計數器。通過定義數組修改的閾值,您可以做出決定。

var fuzzyArray = { 
        data : [], 
        modCount : 0, 
        changeElement : function (elementId, newData){ 
             data[elementid] = newData; 
             modCount++; 
            } 
       }; 

//adding some elements... 

fuzzyArray.changeElement(1,"foo"); 
if (fuzzyArray.modCount > treshold){ 
    // do something 
} 
1

這取決於你對「模糊」的定義是什麼。

Filype的建議會給你一個非常具體的指紋。沒有什麼模糊的。

一種解決方案是查看測試用例和參考數據集的JSON表示之間的levenstein差異(將得分除以參考集的長度以得到一個比例)。快速谷歌發現this implementation

或者你可能只是做的elements which are different