Ruby 如果删除了,如何计算删除次数?

Ruby 如果删除了,如何计算删除次数?,ruby,Ruby,我有这样一个代码块: hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo')} 有一种简单的方法可以计算delete\u if实际执行了多少次?计数器 因为每个整数都是真实的,所以您可以写: count = 0 hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo') && count += 1} 单元格将在计数每次递增时删除,而计数将在单元格[“

我有这样一个代码块:

hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo')}
有一种简单的方法可以计算delete\u if实际执行了多少次?

计数器 因为每个整数都是真实的,所以您可以写:

count = 0
hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo') && count += 1}
单元格
将在
计数
每次递增时删除,而
计数
将在
单元格[“id”][“name”]==(“foo”)每次递增时删除。

例如:

count = 0
true  && count += 1
false && count += 1
true  && count += 1
false && count += 1
true  && count += 1

count
# 3
差异 由于
delete\u如果
是破坏性的,您可以简单地比较方法调用前后的大小差异

original_size = hash["value"].size
hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo') && count += 1}
original_size - hash["value"].size
隔断 如果您不仅需要
delete\u(如果
已执行)的次数,还需要哪些元素,您可以使用:

柜台 因为每个整数都是真实的,所以您可以写:

count = 0
hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo') && count += 1}
单元格
将在
计数
每次递增时删除,而
计数
将在
单元格[“id”][“name”]==(“foo”)每次递增时删除。

例如:

count = 0
true  && count += 1
false && count += 1
true  && count += 1
false && count += 1
true  && count += 1

count
# 3
差异 由于
delete\u如果
是破坏性的,您可以简单地比较方法调用前后的大小差异

original_size = hash["value"].size
hash["value"].delete_if{|cell| cell["id"]["name"] == ('foo') && count += 1}
original_size - hash["value"].size
隔断 如果您不仅需要
delete\u(如果
已执行)的次数,还需要哪些元素,您可以使用:


检查大小差异或增加计数器。我可以在delete_if块中增加计数器吗?是的,您可以在其中执行任何操作。在此之前定义计数器。检查大小差异或增加计数器。我可以在delete_if块中增加计数器吗?是的,您可以在其中执行任何操作。在那之前先定义一下计数器。非常感谢你的回复。非常感谢你的回复