Tag: 数组

Ruby中已排序元素的原始索引

arr = [1,3,2,4] arr.sort #=> [1,2,3,4] 我想要一个数组[0, 2, 1, 3] arr.sort [0, 2, 1, 3] ( arr.sort顺序的原始索引) 使用Ruby 1.9.3有一种简单的方法吗? 谢谢

迭代多个数组的最佳方法是什么?

在Ruby中迭代多个数组的最佳方法(性能方面的美观和高效)是什么? 假设我们有一个数组: a=[x,y,z] b=[‘a’,’b’,’c’] 我想要这个: xa yb zc 谢谢。

如何在ruby中制作动态多维数组?

我有一个关于多维数组的初学ruby问题。 我想按年份和月份对条目进行排序。 所以我想创建一个包含年 – >月 – >月份条目的多维数组 所以数组就像: 2009 -> 08 -> Entry 1 -> Entry 2 09 -> Entry 3 2007 -> 10 -> Entry 5 我现在有: @years = [] @entries.each do |entry| timeobj = Time.parse(entry.created_at.to_s) year = timeobj.strftime(“%Y”).to_i month = timeobj.strftime(“%m”).to_i tmparr = [] tmparr <entry} @years.push(year) @years << tmparr end 但是当我尝试遍历岁月数组时,我得到:“未定义的方法`每个’为2009:Fixnum” 也试过: […]

需要帮助获取嵌套的ruby哈希层次结构

我有哈希深度嵌套哈希,我希望每个键的层次结构(父对子)作为数组。 例如 – hash = { “properties”=>{ “one”=>”extra”, “headers”=>{ “type”=>”object”, “type1″=>”object2” }, “entity”=>{ “type”=>”entype” }, }, “sec_prop”=>”hmmm” } 对于这个哈希,我希望输出如下所示,作为每个键的单独数组。 [properties,one] [properties,headers,type] [properties,headers,type1] [properties,entity,type] [sec_prop] 我一直在尝试并通过一些递归方法搜索这个,但它似乎不适合我任何帮助将不胜感激。 这里需要注意的重要一点是,在嵌套中存在相同哈希中的重复键,例如在头和实体中重复键入键。 所以我需要适当的层次结构来识别正确的密钥 我应该只为那些值不是另一个哈希的键得到这个层次结构数组。 它应该采用上面给出的格式,但也欢迎任何其他解决方案 谢谢。!

找到m和n之间的所有整数,其平方除数之和本身就是一个平方

问题问题 42的除数是:1,2,3,6,7,14,21,42。这些除数的平方是:1,4,9,36,49,196,441,1764。平方除数的总和是2500这是50 * 50,一个正方形! 给定两个整数m,n(1 <= m <= n)我们想要找到m和n之间的所有整数,其平方除数之和本身就是一个平方。 42是这样的数字。 结果将是一个数组数组,每个子数组有两个元素,首先是平方除数为正方形的数字,然后是平方除数的总和。 代码如下 如何让这个特定的程序运行得更快? 我的当前代码在n> 9999之后超时。 #returns the divisors of each number in an array of arrays r = (m..n).to_a.map { |z| (1..z).select { |x| z % x == 0} } #this finds all integers between m and n whose sum of squared divisors is itself […]

ruby如何生成树形结构表单数组?

我有一个数组,其中包含这样的项目列表 arr = [ {:id=>1, :title=>”A”, :parent_id=>nil}, {:id=>2, :title=>”B”, :parent_id=>nil}, {:id=>3, :title=>”A1″, :parent_id=>1}, {:id=>4, :title=>”A2″, :parent_id=>1}, {:id=>5, :title=>”A11″, :parent_id=>3}, {:id=>6, :title=>”12″, :parent_id=>3}, {:id=>7, :title=>”A2=121″, :parent_id=>6}, {:id=>8, :title=>”A21″, :parent_id=>4}, {:id=>9, :title=>”B11″, :parent_id=>2}, {:id=>10, :title=>”B12″, :parent_id=>2}, … ] 如果parent_id为nil那么它应该是父节点,如果parent_id不是nil则它应该在特定父节点下。 基于id和parent_id ,我想提供这样的响应: -A -A1 -A11 -A12 -A123 -A2 -A21 -B -B1 -B11 -B12 我怎么能产生上面提到的回应? 谢谢

填充表格数据的打印输出

我知道这可能很简单,但我在一个文件中有一些这样的数据: Artichoke Green Globe, Imperial Star, Violetto 24″ deep Beans, Lima Bush Baby, Bush Lima, Fordhook, Fordhook 242 12″ wide x 8-10″ deep 我希望能够格式化成一个漂亮的TSV类型的表,看起来像这样: Name | Varieties | Container Data ———-|————- |——- some data here nicely padded with even spacing and right aligned text

Ruby Array concat vs + speed?

我做了Ruby的数组concat() vs +操作的小性能测试, concat()太快了。 但是我不清楚为什么concat()这么快? 有人可以帮忙吗? 这是我使用的代码: t = Time.now ar = [] for i in 1..10000 ar = ar + [4,5] end puts “Time for + ” + (Time.now – t).to_s t = Time.now ar = [] for i in 1..10000 ar.concat([4,5]) end puts “Time for concat ” + (Time.now – t).to_s

返回Ruby中带有修改值的哈希值

我正在尝试这个: {:id => 5, :foos => [1,2,3]}.each {|k,v| v.to_s} 但那是回归: {:id=>5, :foos=>[1, 2, 3]} 我想看看这个: {:id=>”5″, :foos=>”[1, 2, 3]”} 我也尝试过Hash#collect和Hash#map变种。 有任何想法吗?

从Ruby中的列表中获取对的所有组合

我有一个元素列表(例如数字),我想检索所有可能的对的列表。 我怎么能用Ruby做到这一点? 例: l1 = [1, 2, 3, 4, 5] 结果: l2 #=> [[1,2], [1,3], [1,4], [1,5], [2,3], [2,4], [2,5], [3,4], [3,5], [4,5]]