Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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,我有: 在我的控制台中: @pakker[0] = 6 @number = [1, 2, 3, 4, 5, 6] (1..@pakker[0]).map {|i| @number.map{|d| d}.combination(i).to_a} 如何删除阵列中的所有这些阵列 我尝试过扁平化: => [1, 2, 3, 4, 5, 6, [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], etc. 必须有更好的方法,但如果a是上述结果: <r[0])

我有:

在我的控制台中:

@pakker[0] = 6

@number = [1, 2, 3, 4, 5, 6]

(1..@pakker[0]).map {|i| @number.map{|d| d}.combination(i).to_a}
如何删除阵列中的所有这些阵列

我尝试过扁平化:

=> [1, 2, 3, 4, 5, 6, [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], etc. 

必须有更好的方法,但如果a是上述结果:

<r[0]).map {|i| @number.map{|d| d}.combination(i).to_a}.flatten(1)
=> [[1], [2], [3], [4], [5], [6], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [2, 3]
, [2, 4], [2, 5], [2, 6], [3, 4], [3, 5], [3, 6], [4, 5], [4, 6], [5, 6], [1, 2,
 3], [1, 2, 4], [1, 2, 5], [1, 2, 6], [1, 3, 4], [1, 3, 5], [1, 3, 6], [1, 4, 5]
, [1, 4, 6], [1, 5, 6], [2, 3, 4], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6], [
2, 5, 6], [3, 4, 5], [3, 4, 6], [3, 5, 6], [4, 5, 6], [1, 2, 3, 4], [1, 2, 3, 5]
, [1, 2, 3, 6], [1, 2, 4, 5], [1, 2, 4, 6], [1, 2, 5, 6], [1, 3, 4, 5], [1, 3, 4
, 6], [1, 3, 5, 6], [1, 4, 5, 6], [2, 3, 4, 5], [2, 3, 4, 6], [2, 3, 5, 6], [2,
4, 5, 6], [3, 4, 5, 6], [1, 2, 3, 4, 5], [1, 2, 3, 4, 6], [1, 2, 3, 5, 6], [1, 2
, 4, 5, 6], [1, 3, 4, 5, 6], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
irb(main):197:0>
此外,我认为以下内容相当于您的组合创建删除了内部映射:


不完全确定。

正在查找[this?][1][1]:@steenslag不完全确定,在收集惰性枚举后,您仍然需要删除一级数组。归根结底,这是同一件事,尽管它假设您实际上在寻找OP的帖子中提到的一个powerset,但并没有说明n必然等于数组的长度。当然,它可以修改为将n作为参数,并巧妙地包装了功能。
<r[0]).map {|i| @number.map{|d| d}.combination(i).to_a}.flatten(1)
=> [[1], [2], [3], [4], [5], [6], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [2, 3]
, [2, 4], [2, 5], [2, 6], [3, 4], [3, 5], [3, 6], [4, 5], [4, 6], [5, 6], [1, 2,
 3], [1, 2, 4], [1, 2, 5], [1, 2, 6], [1, 3, 4], [1, 3, 5], [1, 3, 6], [1, 4, 5]
, [1, 4, 6], [1, 5, 6], [2, 3, 4], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6], [
2, 5, 6], [3, 4, 5], [3, 4, 6], [3, 5, 6], [4, 5, 6], [1, 2, 3, 4], [1, 2, 3, 5]
, [1, 2, 3, 6], [1, 2, 4, 5], [1, 2, 4, 6], [1, 2, 5, 6], [1, 3, 4, 5], [1, 3, 4
, 6], [1, 3, 5, 6], [1, 4, 5, 6], [2, 3, 4, 5], [2, 3, 4, 6], [2, 3, 5, 6], [2,
4, 5, 6], [3, 4, 5, 6], [1, 2, 3, 4, 5], [1, 2, 3, 4, 6], [1, 2, 3, 5, 6], [1, 2
, 4, 5, 6], [1, 3, 4, 5, 6], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
irb(main):197:0>
a.flatten(1).collect { |arr| arr.size == 1 ? arr[0] : arr }
(1..6).map { |i| number.map { |d| d }.combination(i) }