- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
假设我在一个数组中包含以下 ruby 数组,但我不知道会有多少个数组或它们的长度。下面是一个例子:
[["cat", "dog"],[1, 3, 5, 7],["morning", "afternoon", "evening"]]
我想要做的是从每个数组中选取 1 个值并将其作为这些组合的数组返回,从而获得所有结果组合。因此,在下面的例子中,应该有2*4*3,即24个可能的唯一结果。
结果会是这样的:
result = [["cat", 1, "morning"], ["cat", 1, "afternoon"], ["dog", 5, "evening"] ...]
对于 N 个数组的列表,我将如何在 ruby 中执行此操作?我试着摆弄产品、 map 和注入(inject),但我无法让它工作。
最佳答案
编辑 因为您明确表示您处理的不仅仅是三个数组 a1
、a2
和 a3
而是一个数组数组,将我的解决方案更改为使用 product
。
像这样吗?
a1.map{|x1| a2.map{|x2| a3.map{|x3| [x1, x2, x3] }}}.flatten(2)
或者使用flat_map
:
a1.flat_map{|x1| a2.flat_map{|x2| a3.map{|x3| [x1, x2, x3] }}}
哇,或者只是:
a1.product(a2,a3)
如果你有多个数组(不仅仅是第一个例子中固定数量的 3),然后:
input = [["cat", "dog"],[1, 3, 5, 7],["morning", "afternoon", "evening"]]
h,*rest = input
result = h.product(*rest)
关于Ruby - 如何从数组列表的每个数组中选取 1 个值来找到结果组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612243/
在下面的代码中,我想不必添加undefined作为filteredDevice的类型注解。我认为一个被过滤的设备不应该是未定义的,因为我过滤掉了未定义的设备。 但是如果我删除 undefined类型注
我有一个 UIButton,其文本来自服务器。按钮的宽度是固定的。我想要的是,如果按钮的文本超过按钮的宽度,文本应该在按钮内选取框。如果文本适合按钮宽度,则不应有选取框效果。 我点击了一些链接(one
我正在从头开始实现 webgl 选取,并决定走 GLSL 路线,而不是光线相交测试。 所以我将整个场景渲染到一个单独的帧缓冲区中,为每个对象分配一个唯一的颜色,该颜色作为统一变量传递给片段着色器。当场
例如,我有包含多个对象的数组, var arr = ["a", "b", "c", "d"]; 我想要的是从该数组中选取 2 个随机对象,例如“a”和“c”,并将这 2 个对象推送到另一个数组中,例如
我是一名优秀的程序员,十分优秀!