小编Bri*_*ear的帖子

给定一个大小为y的数组,包含大小为n的数组,如何使用Ruby返回所有逻辑组合?

我想要做的是处理n组,而我下面提供的代码恰好适用于4组.

def show_combinations
  @combos = []
  ['A', 'no A'].each do |a|
    ['B', 'no B'].each do |b|
      ['C', 'no C'].each do |c|
        ['D', 'no D'].each do |d|
          @combos << [a, b, c, d]
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我如何重构以下代码来处理以下场景:鉴于我有一个大小为y的数组包含大小为n的数组,我想返回所有组合.重要的是要注意每个子数组中只有一个项目可以在结果中.(例如"已完成的配置文件"也不能出现在"未完成配置文件"的结果中)

背景:

用户可能有一些任务:例如,"完成配置文件"或"设置电子邮件"等等.这些任务可以表示如下:

@task_states = [["Completed Profile, NOT Completed Profile"], ["Set up Email", "NOT set up Email"]]
Run Code Online (Sandbox Code Playgroud)

然后,将@task_states传递给方法,结果应为:

[
["Completed Profile", "Set up Email"],
["Completed Profile", "NOT set up Email"],
["NOT Completed Profile", "Set up Email"],
["NOT Completed Profile", "NOT …
Run Code Online (Sandbox Code Playgroud)

ruby arrays

6
推荐指数
1
解决办法
94
查看次数

标签 统计

arrays ×1

ruby ×1