假设我有一个如下所示的数组:
[true, true, false]
我正在传递一个运算符和数组,它可能是AND
、OR
或XOR
。
所以我想根据指定的运算符计算数组的逻辑值。
例如:
对于给定的数组[true, true, false]
和运算符AND
我应该能够连续执行数组中的 n 个元素
Steps: true AND true -> true, true AND false -> false
因此输出应该是false
数组可以是n个 boolean 值。
最佳答案
最好和最简单的方法是使用 reduce
:
def logical_calculation(arr, op)
op=='AND' ? arr.reduce(:&) : op=='OR' ? arr.reduce(:|) : arr.reduce(:^)
end
还有另一种方法可能是使用 inject
OPS = { "AND" => :&, "OR" => :|, "XOR" => :^ }
def logical_calculation(array, op)
array.inject(&OPS[op])
end
关于arrays - ruby 中 boolean 数组的最终逻辑值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987888/