Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 尝试删除列表列表中的所有元素_Ruby - Fatal编程技术网

Ruby 尝试删除列表列表中的所有元素

Ruby 尝试删除列表列表中的所有元素,ruby,Ruby,我试图通过对列表中的列表进行ANDing来创建一个新的元素列表 我尝试将列表放入一个while循环中,使用一个表示列表长度的计数器,然后执行以下操作 values = values[counter] && values [counter + 1] 但由于某些原因,这并没有给我正确的结果 简而言之,我的目标是: values = [["B", "W"],["C","W"]] ... result = ["W"] 请参阅(akainject)和arr.reduce([],:&)是

我试图通过对列表中的列表进行ANDing来创建一个新的元素列表

我尝试将列表放入一个while循环中,使用一个表示列表长度的计数器,然后执行以下操作

values = values[counter] && values [counter + 1]
但由于某些原因,这并没有给我正确的结果

简而言之,我的目标是:

values = [["B", "W"],["C","W"]]
...
result = ["W"]
请参阅(aka
inject
)和
arr.reduce([],:&)
是以下内容的简写:

arr.reduce([]) { |intersection, a| intersection & a }

reduce
被分配一个初始值
[]
,以防它的接收器是空数组。

你太棒了:)你也可以传递一个初始值作为第一个参数,即
reduce([],:&)
。如果
数组恰好为空(
[]),这将非常有用。reduce(:&)
将返回
nil
)。Ruby有3个“and”:二进制运算符
&
(数组的交集)、布尔运算符
&
和控制流运算符
。在某些情况下,它们可能工作相同,但它们的目的完全不同。
arr.reduce([]) { |intersection, a| intersection & a }