我想迭代一個數組並有條件地增加一個計數器。我使用索引來比較其他數組的元素:每個與索引與Ruby中的對象
elements.each_with_index.with_object(0) do |(element, index), diff|
diff += 1 unless other[index] == element
end
無條件更換時,我不能讓diff
甚至改變值。 這可以用inject
解決:
elements.each_with_index.inject(0) do |diff, (element, index)|
diff += 1 unless other[index] == element
diff
end
但我想知道如果.each_with_index.with_object(0)
是一個有效的建設,以及如何使用它?
不能這樣做'(元素及其他).size'? – j03w
@ j03W它不比較具有相同索引的2個元素作爲一對,但返回2個數組的交集。 – leemour