这是我的问题:
给定一个多维数组:[['monday', 'saturday'], ['beginner'], ['kid', 'adult']]
我想:
['monday', 'monday-beginner', 'monday-beginner-kid', 'monday-beginner-adult', 'monday-kid', 'monday-adult',
'saturday', 'saturday-beginner', 'saturday-beginner-kid', 'saturday-beginner-adult', 'saturday-kid', 'saturday-adult',
'beginner', 'beginner-kid', 'beginner-adult',
'kid',
'adult']
以下是我看到的可以提供帮助的问题:
答案 0 :(得分:4)
first, *rest = [['monday', 'saturday'], ['beginner'], ['kid', 'adult']]
.map{|a| [nil, *a]}
first.product(*rest).map{|a| a.compact.join("-")} - [""]
答案 1 :(得分:0)
我有两个步骤的解决方案: - 在你的例子中找到所有可能的组合,4:
['monday', 'beginner', 'kid']
['monday', 'beginner', 'adult']
['saturday', 'beginner', 'kid']
['saturday', 'beginner', 'adult']
然后使用combinaison方法使用n从1到3进行3次,然后合并3次返回。你最后只需要在每个排列上调用.join(“ - ”)。