我有一個情況我要處理整個陣列和陣列進行any?
操作來檢查的一些元素是否返回false
替代任何?該過程完成陣列
例如: 我想打印的所有真值。而且我還需要檢查什麼是數組false
:
def hel?
[true, false, true].any?{|x| p x; x}
end
上面的示例只打印第一個值(即)true
並返回true
。但我希望它能夠打印出陣列的所有元素並返回false
。有其他方法可以做到嗎?或者同一件事情有任何變化?謝謝:)
我有一個情況我要處理整個陣列和陣列進行any?
操作來檢查的一些元素是否返回false
替代任何?該過程完成陣列
例如: 我想打印的所有真值。而且我還需要檢查什麼是數組false
:
def hel?
[true, false, true].any?{|x| p x; x}
end
上面的示例只打印第一個值(即)true
並返回true
。但我希望它能夠打印出陣列的所有元素並返回false
。有其他方法可以做到嗎?或者同一件事情有任何變化?謝謝:)
要打印的值,這樣做:
[true, false, true].each(&method(:p))
要查看是否所有的人都truthy,這樣做:
[true, false, true].all?
爲了做到這兩個,這樣做:
[true, false, true].each(&method(:p)).all?
或者,您可以將其放入一個迭代中:
[true, false, true].inject(true){|m, n| p(n) && m}
如果你想通過你可以使用Enumerable#each
數組迭代,但不會返回一個布爾值:如果您要檢查所有元素
def hel?
[true, false, true].each{|x| p x; x}
end
,您可以使用Enumerable#all?
:
def hel?
[true, false, true].all?{|x| p x; x}
end
但是在這兩種情況下,您都需要修改塊以獲得相同的結果。
抱歉,排字錯誤 – codeit
你能澄清你在問什麼嗎?你說你想打印所有的真值,並且你想要打印數組的所有元素。你的意思是你想要打印所有的元素,而不管它們的真實性如何?如果至少有一個元素是虛假的,或者如果所有元素都是虛假的,你是否一直想要返回false? –