我要选择所有关键字,直到累积SUM < X
。这不起作用,因为return true
停止了脚本。
cum_sum = 0
keywords = keywords.select{|k|
cum_sum += k[:contribution]
if cum_sum < top
return true
else
return false
end
}
答案 0 :(得分:4)
块返回值是最后一条语句的值,您可以这样写:
cum_sum = 0
keywords = keywords.select{|k|
cum_sum += k[:contribution]
cum_sum < top
}
还有Enumerable#take_while更适合您的用例