Tag: 数组

生成具有给定范围内的长度的数组的所有可能组合

如何生成长度在给定范围内的数组元素的所有可能组合? 例如: (‘a’..’f’).to_a.all_possibilities(3, 5) 应该产生如下数组: [‘abc’, ‘abd’, ‘abe’, ‘abf’, …, ‘abcde’, ‘abcdf’, ‘abcda’, …] 包括从”abc” (三个字符)到最后一个可能的组合(‘a’..’f’).to_a ,长度为五个字符。 我不知道该怎么做。 有帮助吗?

查找数组中最常见的字符串

我有这个数组,例如(大小是可变的): x = [“1.111”, “1.122”, “1.250”, “1.111”] 我需要找到最常用的值(在这种情况下为”1.111″ )。 有一个简单的方法吗? 事先提前! 编辑#1:谢谢大家的答案! 编辑#2:我根据ZED的信息更改了我接受的答案。 再次感谢大家!

展平嵌套的json对象

我正在寻找一种方法,将“json”哈希变为扁平哈希,但将路径信息保存在扁平键中。 例如: h = {“a” => “foo”, “b” => [{“c” => “bar”, “d” => [“baz”]}]} 压扁(h)应该返回: {“a” => “foo”, “b_0_c” => “bar”, “b_0_d_0” => “baz”}

如何从Ruby中的哈希数组中获取唯一元素?

我有一个哈希数组,我想要它的唯一值。 调用Array.uniq并不能满足我的期望。 a = [{:a => 1},{:a => 2}, {:a => 1}] a.uniq # => [{:a => 1}, {:a => 2}, {:a => 1}] 我期望的地方: [{:a => 1}, {:a => 2}] 在网上搜索时,我没有想出一个我满意的解决方案。 人们建议重新定义Hash.eql? 和Hash.hash ,因为这是Array.uniq查询的内容。 编辑:在现实世界中遇到这个问题时,哈希值稍微复杂一些。 它们是解析的JSON的结果,它具有多个字段,其中一些值也是哈希值。 我有一系列的结果,我想过滤掉唯一的值。 我不喜欢重新定义Hash.eql? 和Hash.hash解决方案,因为我要么必须全局重新定义Hash ,要么为我的数组中的每个条目重新定义它。 为每个条目更改Hash的定义会很麻烦,尤其是因为每个条目中可能存在嵌套的哈希值。 在全球范围内改变Hash有一些潜力,特别是如果它是暂时完成的话。 我想构建另一个类或辅助函数来包装保存旧的定义并恢复它们,但我认为这会增加实际需要的复杂性。 使用inject似乎是重新定义Hash一个很好的选择。

将数组的哈希变成Ruby中的哈希数组

我们有以下数据结构: {:a => [“val1”, “val2”], :b => [“valb1”, “valb2”], …} 我想把它变成 [{:a => “val1”, :b => “valb1”}, {:a => “val2”, :b => “valb2”}, …] 然后回到第一个表格。 任何看起来很漂亮的人?

ruby中的.each迭代器是否保证每次都在相同的元素上给出相同的顺序?

我正在使用列表’a’做这样的事情: a.each_with_index |outer, i| a.each_with_index |inner, j| if(j > i) # do some operation with outer and inner end end end 如果迭代器不会使用相同的顺序,这将不起作用。 我不关心命令究竟是什么,我只需要两个.each_with_index迭代器来使用相同的顺序。 我会假设它是一个数组的属性,它有一个固定的顺序,我只是偏执,迭代器不会使用该顺序…

设置与arrays,区别

Ruby中Set和Array之间的区别是什么,除了集合保留唯一元素而数组可以保留重复元素这一事实?

如何转置不同大小的rubyarrays?

我有一个数组: arr=[[1,2,3],[4,5],[6]], 我有以下代码: arr.transpose 但它不起作用,如何解决? 我正进入(状态 [[1,2,3],[4,5],[6]].transpose IndexError: element size differs (2 should be 3) from (irb):13:in `transpose’ from (irb):13 from /home/durrant 我的解决方案 arr.reduce(&:zip).map(&:flatten) 输出: [[1, 4, 6], [2, 5, nil], [3, nil, nil]]

如何将整数数组汇总为范围数组?

我想接受以下输入: [1,2,4,5,6,7,9,13] 把它变成如下的东西: [[1,2],[4,7],[9,9],[13,13]] 每个子数组代表一个整数范围。

Ruby:包含在Array中的数组,任何顺序

假设我有以下Ruby代码: array_1 = [‘a’, ‘b’] array_2 = [‘a’, ‘b’, ‘c’] some_function(array_1, array_2) # => True some_function(array_2, array_1) # => False some_function([‘a’, ‘b’], [‘a’, ‘d’]) # => False some_function([‘x’, ‘y’], array_2) # => False 当参数2包含参数1中的所有元素时,我几乎都在寻找some_function来返回True。