草庐IT

array_of_keys

全部标签

arrays - 根据某些元素中可能为 nil 的属性对数组进行排序

我有一个对象数组[,,]我需要数组按时间排序,然后按值排序[,,]但是使用sort_by会抛出错误,因为时间为零。我现在正在使用一种丑陋的方式进行排序,但我相信有一个很好的方式来解决这个问题starred=[]@answers.each{|a|(starred 最佳答案 starred.sort_by{|a|[a?1:0,a]}当它必须比较两个元素时,它会比较一个数组。当Ruby比较数组(调用===方法)时,它比较第一个元素,只有当第一个元素相等时才转到第二个元素。?1:0保证,我们将Fixnum作为第一个元素,所以它应该没有错误。

ruby - array.each 和 array.map 有何不同?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Array#eachvs.Array#mapruby-1.9.2-p180:006>ary=["a","b"]=>["a","b"]ruby-1.9.2-p180:007>ary.map{|val|pval}"a""b"=>["a","b"]ruby-1.9.2-p180:008>ary.each{|val|pval}"a""b"=>["a","b"]ruby-1.9.2-p180:009>ary.map{|val|val["a2","b2"]ruby-1.9.2-p180:010>ary.each{|val

ruby-on-rails - rails : comparison of Status with Status failed

我需要获取所有current_user.friends状态,然后按created_at对它们进行排序。classUser在Controller中:defindex@statuses=[]current_user.friends.map{|friend|friend.statuses.each{|status|@statusesa.created_at}endcurrent_user.friends返回对象数组Userfriend.statuses返回对象数组Status错误:comparisonofStatuswithStatusfailedapp/controllers/welcom

ruby - 为什么 Array#each 返回具有相同元素的数组?

我正在学习each如何在ruby​​中工作的细节,我尝试了以下代码行:p[1,2,3,4,5].each{|element|el}结果是一个数组[1,2,3,4,5]但我不认为我完全理解为什么。为什么each的返回值是同一个数组?每个人不只是提供一种迭代方法吗?或者只是each方法返回原始值的常见做法? 最佳答案 Array#each返回调用它的[array]对象:block的结果是discarded。因此,如果原始数组没有icky副作用,那么什么都不会改变。也许你的意思是使用map?p[1,2,3,4,5].map{|i|i*i}

arrays - Ruby 2.0.0 Array#bsearch 行为

我注意到从Ruby2.0.0开始,数组类有一个我正在测试的bsearch方法,但我没有得到我期望的行为。为什么它返回2和5的值,但返回-1、1和4的nil?arr_in=[-1,1,2,4,5]arr_in.bsearch{|x|x==3}#=>nilarr_in.bsearch{|x|x==-1}#=>nilarr_in.bsearch{|x|x==1}#=>nilarr_in.bsearch{|x|x==2}#=>2arr_in.bsearch{|x|x==4}#=>nilarr_in.bsearch{|x|x==5}#=>5 最佳答案

ruby-on-rails - 空元素是否有等效的 Array#compact ?

众所周知,Array#compact从数组中删除了nil元素。array.reject{|元素|元素.空?}会删除像[]这样的空元素(在rails中你也可以使用#blank?来删除空元素和无元素)。有没有像Array#compact这样的删除空/空白元素的简写方法?还是使用Array#reject是我最好的选择?我还没有看到#compact的“空”等价物,如果有的话。但也许我只是忽略了它。 最佳答案 是的!array.reject&:empty?然而,作为scarver2和HoangLe解释说,这将失败并显示NoMethodErro

arrays - 获取数组的每n个元素

如何使用Ruby1.9+选择数组的每个n个元素(例如六个)?示例:a=[0,1,2,3,4,...,33]#solution#=>[[0,1,2,3,4,5],[6,7,8,9,10,11],...] 最佳答案 Enumerable#each_sliceIteratesthegivenblockforeachsliceofelements.Ifnoblockisgiven,returnsanenumerator.e.g.:(1..10).each_slice(3){|a|pa}#outputsbelow[1,2,3][4,5,6][

ruby-on-rails - 文字和构造函数之间的区别? ([] 与 Array.new 和 {} 与 Hash.new)

我很想知道[]和Array.new以及{}和Hash.new之间的更多区别我对它进行了相同的基准测试,似乎简写是赢家require'benchmark'many=500000Benchmark.bmdo|b|b.report("[]\t"){many.times{[].object_id}}b.report("Array.new\t"){many.times{Array.new.object_id}}b.report("{}\t"){many.times{{}.object_id}}b.report("Hash.new\t"){many.times{Hash.new.object_id

ruby-on-rails - 将 api key 添加到 ActiveResource 中的每个请求

我有2个RESTfulRails应用程序,我试图让彼此交谈。两者都是用Rails3(目前是beta3)编写的。对服务的请求将需要使用一个apikey,它只是每个请求都需要的参数。我似乎找不到有关如何执行此操作的任何信息。您通过site=方法定义资源连接到的url。应该有等效的query_params=方法或类似方法。我发现了一篇与此相关的好博文,它是从2008年10月开始的,所以对Rails3不是很有用。更新:我有一个想法。一个小型的Rack中间件或Metal会是这个问题的答案吗?它可以直接通过请求,将它的api_key添加上。 最佳答案

Ruby - Array.join 与字符串连接(效率)

我记得有一次因为在Python中连接字符串而受到责骂。有人告诉我,在Python中创建一个字符串列表并稍后加入它们会更有效。我将这种做法应用到JavaScript和Ruby中,尽管我不确定这在后者中是否有同样的好处。谁能告诉我在Ruby编程语言中加入字符串数组并调用:join或根据需要连接字符串是否更有效(在资源和执行方面)?谢谢。 最佳答案 自己用Benchmark试试类。require"benchmark"n=1000000Benchmark.bmbmdo|x|x.report("concatenation")dofoo=""n