2011-09-30 41 views
0

我有一個這樣的對象:提取多個對象的值

object["key1"] = "text1" 
object["key2"] = "text2" 
object["key3"] = "text1" 
object["key4"] = "text3" 

我怎麼能做出來(例如警報)的具有相同的值(文本,文本2等)的元素?

在上面的例子中,它應該是object["key1"]object["key2"]

感謝

+0

Um ...通過數組循環並測試每個值? – nnnnnn

+0

這不是一個數組,這是一個對象。 JavaScript中的數組只有數字鍵。 –

+2

我假設你的意思是'object ['key1']'和'object ['key3']'? – Jacob

回答

0

我已排序的數組和然後認爲您要提醒或執行任何功能,對於每個重複的元素只能使用一次。 警告:排序可以得到重與陣列 http://jsfiddle.net/SPQJ7/ 以上小提琴已經設置並與多個reapeated元素

4

工作你可以「反轉」的對象的大小(屬性成爲值,值成爲屬性):

var byValue = {}; 

for (var prop in object) { 
    if (!(object[prop] in byValue)) { 
     byValue[object[prop]] = []; 
    } 
    byValue[object[prop]].push(prop); 
} 

這應該產生這樣的結構:

{ 
    'text1': ['key1', 'key3'], 
    'text2': ['key2'], 
    'text3': ['key4'] 
} 

然後,您可以檢測到有重複鍵的值:

for (var value in byValue) { 
    if (byValue[value].length > 1) { 
     alert(byValue[value].join(', ')); 
    } 
}