Ruby on rails 查找其数字总和为Ruby中最大数字的电话号码

Ruby on rails 查找其数字总和为Ruby中最大数字的电话号码,ruby-on-rails,ruby,Ruby On Rails,Ruby,这是我第一次使用Ruby,我需要一个包含三个10位电话号码的数组,让程序给我一个电话号码,其总和最大 my_数组=(['123-456-7777','963-481-7945','111-222-3333']) => '963-481-7945' 我不知道从哪里开始 请帮忙 我目前正在做关于Ruby的codeacademy课程。但到目前为止,我还没有足够的知识来解决这个问题 我想从 my_数组=(['123-456-7777','963-481-7945','111-222-3333']) 我的

这是我第一次使用Ruby,我需要一个包含三个10位电话号码的数组,让程序给我一个电话号码,其总和最大

my_数组=(['123-456-7777','963-481-7945','111-222-3333'])

=> '963-481-7945' 我不知道从哪里开始

请帮忙

我目前正在做关于Ruby的codeacademy课程。但到目前为止,我还没有足够的知识来解决这个问题

我想从 my_数组=(['123-456-7777','963-481-7945','111-222-3333']) 我的_数组[2]

这会给我想要的答案 =>“963-481-7945”

但我知道这不是办法


我想对每个值执行求和,然后将其设置为我想要显示的数字集,但我不确定如何设置。解决方案如下:

my_array = (['123-456-7777', '963-481-7945', '111-222-3333'])
highest_sum = 0
highest_phone_number = 0

my_array.each do |phone_number|
    sum = phone_number.gsub('-', '').split('').map(&:to_i).reduce(&:+)
    if sum > highest_sum
        highest_sum = sum
        highest_phone_number = phone_number
    end
end

puts highest_phone_number
#=> 963-481-7945
您查看电话号码字符串数组(my_数组)中的每个字符串,并获得每个电话号码字符串的总和。您可以将破折号('-')替换为零(''),将电话号码字符串拆分为数字,将每个数字映射为一个整数,然后对数字求和。一旦你得到电话号码的总和,检查它是否大于当前的最高总和。如果是,请将最高的_总和设置为该总和,将最高的_电话号码设置为当前电话号码。循环遍历所有电话号码字符串后,只需输出最高的电话号码。

以下是我的解决方案:

my_array = (['123-456-7777', '963-481-7945', '111-222-3333', '222-111-3333'])

sum_arr  = []
sum_hash = {}

my_array.each do |s|
  sum = s.gsub("-","").split(//).inject(0) {|z, x| z + x.to_i}
  puts sum
  sum_hash[sum] = sum_hash[sum] ? sum_hash[sum] << s : [s]
  puts sum_hash.inspect
end

puts sum_hash.max_by { |k,v| k }
my_数组=(['123-456-7777','963-481-7945','111-222-3333','222-111-3333')
总和_arr=[]
sum_hash={}
我的数组。每个都有|
sum=s.gsub(“-”,“”)。拆分(/)。注入(0){z,x | z+x.to_i}
求和

求和哈希[求和]=求和哈希[求和]?你应该从阅读你的课程材料开始。祝你好运让我们知道进展如何!这不完全是一个教程网站。通常,你会尽最大努力,然后来这里询问更详细的信息。为自己构建一个hello world Ruby脚本,让它显示一个数字的总和,然后开始。这显然是一个家庭作业。到目前为止,语言的哪些部分已经上过你的课?你很有可能会使用它们。在
Array
类下有一些很好的方法用于排序、查找最大值等-您知道什么,它们中的任何一个看起来像是一个很可能的开始吗?给出这些细节——你是如何思考的,你尝试了什么——将有助于定义一个有用的问题。我可以在30秒内给你一句台词,但我觉得这对你没什么帮助,除了让一个陌生人帮你做作业!当你下载Ruby时,它应该附带一本叫做“Ruby之书”的书。你的答案在前100页之内。不,我明白,我肯定想学习如何做,而不仅仅是得到答案。我已经完成了大约一半的代码学院Ruby教程。我仍在努力解决这个问题,但根据我目前所知,我可以解决这个问题。这就是我目前所拥有的:我的数组=(['123-456-7777'、'111-222-3333'、'963-481-7945')sum2=1+1+1+2+3+4+5+6+7+7+7放入sum2=1+1+1+2+2+3+3+3放入sum2=9+6+3+4+8+1+7+9+4+5放入sum3我的数组。每个do |电话号码|总和=电话号码最高总和=电话号码最高总和=电话号码=电话号码末端放入最高电话号码结果是:2156963-481-7945注意到它只给了我第三组数字。所以这里有点不对劲。你的想法是什么,有什么建议来纠正这一点吗?也很抱歉的格式,我有它所有的美好和正确的格式,但当我点击输入它改变了这一点上面。谢谢你的建议@DLP2889在循环中不执行求和,只需将电话号码指定给求和!您需要执行求和。如果sum=highest\u sum
,您就不需要电话号码了。。。您不需要比较任何东西,只需将
最高的总和
放入
总和
即可返回真实值!不知道我的解释是否清楚。您只能在注释中使用代码块,您需要使用反勾号来放置内联代码。