我正在數組中創建一個哈希列表,並且希望在它們相同的情況下保留一個計數。計算Ruby數組中的對象
下面是一個例子散的樣子:
data = {
s: y.id,
t: z.id,
count: 0
}
我循環通過一堆這些散列和推動他們到一個列表。我希望這樣,當s
和t
的值已經存在於列表中的一個散列中時,count
將會增加。
讓我澄清。假設這是我@list
@list = [
{
s: 1,
t: 2,
count: 5
},
{
s: 1,
t: 3,
count: 5
}
]
現在假設,我想下面的哈希推到列表:
data = {
s: 1,
t: 2,
count: 0
}
@list的結果應該是這樣的,因爲與s==1
和t==2
已散存在於列表:
@list = [
{
s: 1,
t: 2,
count: 6
},
{
s: 1,
t: 3,
count: 5
}
]
這是我目前所在的地方。
@final = []
while widgets.count > 1
widget = widgets.shift
widgets.each do |w|
data = {
s: widget.id,
t: w.id,
count: 0
}
@final << data
end
end
這只是將所有的排列到列表中,但我想,以防止複本時s
和t
是相同的,只是增加count
。
我希望我很清楚。
任何建議將不勝感激。
有一個看看[這個問題](http://stackoverflow.com/questions/4351793/is-there-a-bag-implementation-in-ruby)爲計數集的通用實現。 – Sebastian
一些測試會避免混淆:) – Rimian
我已經添加了一個去它,因爲我認爲你已經解釋了它 - 測試將是有用的,這是真的:-) –