Tag: 数组

添加一个回调函数到Ruby数组,以便在添加元素时执行某些操作

我想在Ruby数组中添加类似回调函数的东西,以便在将元素添加到该数组时调用此函数。 我能想到的一件事是覆盖所有方法(如<<,=,insert,…)并从那里调用该回调。 有更简单的解决方案吗?

从数组和频率创建哈希

我有一个数组[1,2,4,5,4,7] ,我想找到每个数字的频率并将其存储在哈希中。 我有这个代码,但它返回NoMethodError: undefined method ‘+’ for nil:NilClass def score( array ) hash = {} array.each{|key| hash[key] += 1} end 期望的输出是 {1 => 1, 2 => 1, 4 => 2, 5 => 1, 7 => 1 }

Ruby将两个arrays合并为一个

这是我的情况。 我有2个arrays @names = [“Tom”, “Harry”, “John”] @emails = [“tom@gmail.com”, “h@gmail.com”, “j@gmail.com”] 我想将这两个组合成一些名为@list Array / Hash,这样我就可以在我的视图中迭代这样的东西: 我无法理解如何实现这一目标。 有什么想法吗?

数组和哈希之间有什么区别?

Ruby中的数组和哈希之间有什么区别?

Ruby:删除字符串开头的空格字符

我有一个单词数组,我试图删除可能存在于单词开头而不是结尾的任何空格。 rstrip! 只需要处理字符串的结尾。 example_array = [‘peanut’, ‘ butter’, ‘sammiches’] desired_output = [‘peanut’, ‘butter’, ‘sammiches’] 正如您所看到的,并非数组中的所有元素都有空白问题,因此如果所有元素都以单个空格字符开头,我就不能像删除第一个字符一样删除第一个字符。 完整代码: words = params[:word].gsub(“\n”, “,”).delete(“\r”).split(“,”) words.delete_if {|x| x == “”} words.each do |e| e.lstrip! end 用户可以在表单上输入的示例文本: Corn on the cob, Fibonacci, StackOverflow Chat, Meta, About Badges Tags,, Unanswered Ask Question

2d数组,推送到一个数组显示在所有数组?

我是ruby的新手,所以我显然误解了一些东西。 我打算创建一个大小为2的数组,其中每个元素本身就是一个数组,然后将项目推送到一个或另一个子数组: #!/usr/bin/env ruby arr = Array.new(2, Array.new) puts ‘default, no entries:’ arr.each_with_index { |a, i| puts ‘arr[‘ + i.to_s + ‘] = ‘ + a.to_s } puts ” puts ‘adding “kitty” to arr[0]:’ arr[0].push(‘kitty’) # add an element to the sub-array at arr[0] arr.each_with_index { |a, i| puts ‘arr[‘ + i.to_s + ‘] = […]

如何在哈希中找到键以映射到符合条件的元素?

我有一个将整数映射到数组的哈希。 例如 {1 => [“abc”], 2 => [“ccc”, “ddd”]} 如何从散列中获取具有至少包含2个元素的数组的所有键?

计算数组中的不同元素

我有一个数组: a = [1, 2, 3, 3, 6, 8, 1, 9] 我想显示每个唯一元素值及其相关元素计数如下: 1: 2 2: 1 3: 2 6: 1 8: 1 9: 1 到目前为止我有: a.sort.group_by { |x| x } { 1 => [ [0] 1, [1] 1 ], 2 => [ [0] 2 ], 3 => [ [0] 3, [1] 3 ], 6 => […]

将Ruby数组转换为哈希

我正在尝试编写一个名为my_transform的方法,该方法采用如下数组: items = [“Aqua”, “Blue”, “Green”, “Red”, “Yellow”] 并显示项目的索引如下: item_to_position = {“Aqua”=>0, “Blue”=>1, “Green”=>2, “Red”=>3, “Yellow”=>4} 我应该能够执行: my_transform(items) == item_to_position 并得到true 。 我已经考虑过使用each_with_index 。 我应该先说: items = [“Aqua”, “Blue”, “Green”, “Red”, “Yellow”] hash = Hash[*array] def my_transform 我必须将字符串转换为哈希值。 任何帮助表示赞赏。

从CSV导入Ruby数组,第一个字段作为散列键,然后在给定标题行的情况下查找字段的值

也许有人可以帮助我。 从像这样的CSV文件开始: Ticker,”Price”,”Market Cap” ZUMZ,30.00,933.90 XTEX,16.02,811.57 AAC,9.83,80.02 我设法把它们读成一个数组: require ‘csv’ tickers = CSV.read(“stocks.csv”, {:headers => true, :return_headers => true, :header_converters => :symbol, :converters => :all} ) 要validation数据,这有效: puts tickers[1][:ticker] ZUMZ 但是这不是: puts tickers[:ticker => “XTEX”][:price] 如何使用自动收录器字段作为唯一键将此数组转换为哈希值,以便我可以轻松地按照输入的第1行中的定义查找任何其他字段? 处理更多的列和行。 非常感激!