2011-07-05 37 views
1

在javascript數組中,我需要檢查和分配像鍵和值對數組中的值。在Javascript中如何比較和存儲值的動態像鍵和值對象

例如:

,如果我加入陣列和相同的值在那個時候我需要比較我陣列檢索一個更多的時間在第二時間在一些值,我需要遞增的先前值而不是將值存儲在數組中。請告訴我如何通過javascript或jQuery實現此目的。

回答

3

聽起來像是想要類似散列表的東西。在JavaScript中,你應該使用對象此:

var data = {}; 

data['key'] = 5; 

// later 

data['key'] += 10; // data['key'] is now 15 

更多關於MDC - Working with Objects對象的信息。

如果你想要的數據與HTML元素相關聯,然後看看jQuery的.data()[docs]方法(使用對象太多,所以在任何情況下,你必須瞭解他們;))

0

如果我如果你想檢查一個給定的值是否已經存在於一個數組中,如果是的話,你想通過...「one」來增加這個值,我猜?

var foo = [10, 7, 44, 12, 102, 5], 
    pos = foo.indexOf(44); 

if(pos > -1) { 
    foo[pos]++; 
} 
0

這樣就可以封裝它計算的值的出現次數,並在其中計數存儲對象的函數:

var count = function() { 
    var counts = {}; 
    return function(key) { if (typeof counts[key]=="number") counts[key]++; else counts[key]=1; return counts[key]; }; 
}(); 

document.write(count("a")); // 1 
document.write(count("b")); // 1 
document.write(count("a")); // 2 
+0

不要使用非數字索引數組。 .. *編輯:*數字是好的;) –

+0

好吧,你說得對,他是在講價值觀念,而不是數字。 –

+0

嗯,其實我們不知道...也許它只是數字.... –