Ruby 尝试删除列表列表中的所有元素
我试图通过对列表中的列表进行ANDing来创建一个新的元素列表 我尝试将列表放入一个while循环中,使用一个表示列表长度的计数器,然后执行以下操作Ruby 尝试删除列表列表中的所有元素,ruby,Ruby,我试图通过对列表中的列表进行ANDing来创建一个新的元素列表 我尝试将列表放入一个while循环中,使用一个表示列表长度的计数器,然后执行以下操作 values = values[counter] && values [counter + 1] 但由于某些原因,这并没有给我正确的结果 简而言之,我的目标是: values = [["B", "W"],["C","W"]] ... result = ["W"] 请参阅(akainject)和arr.reduce([],:&)是
values = values[counter] && values [counter + 1]
但由于某些原因,这并没有给我正确的结果
简而言之,我的目标是:
values = [["B", "W"],["C","W"]]
...
result = ["W"]
请参阅(akainject
)和arr.reduce([],:&)
是以下内容的简写:
arr.reduce([]) { |intersection, a| intersection & a }
reduce
被分配一个初始值[]
,以防它的接收器是空数组。你太棒了:)你也可以传递一个初始值作为第一个参数,即reduce([],:&)
。如果值
数组恰好为空([]),这将非常有用。reduce(:&)
将返回nil
)。Ruby有3个“and”:二进制运算符&
(数组的交集)、布尔运算符&
和控制流运算符和
。在某些情况下,它们可能工作相同,但它们的目的完全不同。
arr.reduce([]) { |intersection, a| intersection & a }