草庐IT

data_array

全部标签

ruby - 如何在遍历数组时使用 Array#delete?

我有一个数组,我想遍历并删除一些元素。这不起作用:a=[1,2,3,4,5]a.eachdo|x|nextifx[1,2,4]我希望a为[1,2]。我该如何解决这个问题? 最佳答案 a.delete_if{|x|x>=3}参见方法文档here更新:您可以在block中处理x:a.delete_ifdo|element|ifelement>=3do_something_with(element)true#Makesuretheifstatementreturnstrue,soitgetsmarkedfordeletionendend

arrays - 传递 block 时 Array#sort 如何工作?

我在理解array.sort{|x,y|的方式时遇到问题block}工作正常,因此如何使用它?来自Rubydocumentation的示例:a=["d","a","e","c","b"]a.sort#=>["a","b","c","d","e"]a.sort{|x,y|yx}#=>["e","d","c","b","a"] 最佳答案 在你的例子中a.sort相当于a.sort{|x,y|xy}如您所知,要对数组进行排序,您需要能够比较其元素(如果您怀疑这一点,只需尝试在不使用任何比较的情况下实现任何排序算法,不是、>、或>=)。您提

ruby-on-rails - Ruby on Rails 中的 send_data 和 send_file 有什么区别?

哪个最适合流式传输和文件下载?请举例说明。 最佳答案 send_data(_data_,options={})send_file(_path_,options={})此处的主要区别在于您使用send_data传递数据(二进制代码或其他)或使用send_file传递文件路径。因此您可以生成一些数据并将其作为内嵌文本或附件发送,而无需通过send_data在您的服务器上生成文件。或者您可以使用send_file发送准备好的文件data="HelloWorld!"send_data(data,:filename=>"my_file.txt

ruby - Ruby 的 Array#shift 有什么作用?

我很难理解Array类的shift和unshift方法在Ruby中的作用。有人可以帮助我了解他们的工作吗? 最佳答案 查看RubyDocumentationArray.shift从数组中移除第一个元素并返回它a=[1,2,3]putsa.shift=>1putsa=>[2,3]Unshift将提供的值添加到数组的前面,将所有其他元素向上移动一个a=%w[bcd]=>["b","c","d"]a.unshift("a")=>["a","b","c","d"] 关于ruby-Ruby的Arr

ruby - Array#each 与 Array#map

hash={"d"=>[11,22],"f"=>[33,44,55]}#case1hash.map{|k,vs|vs.map{|v|"#{k}:#{v}"}}.join(",")=>"d:11,d:22,f:33,f:44,f:55"#case2hash.map{|k,vs|vs.each{|v|"#{k}:#{v}"}}.join(",")=>"11,22,33,44,55"唯一的区别是案例1使用vs.map,案例2使用vs.each。这里发生了什么? 最佳答案 Array#each为数组的每个元素执行给定的block,然后返回数

ruby-on-rails - ActiveRecord.find(array_of_ids),保留顺序

当您在Rails中执行Something.find(array_of_ids)时,结果数组的顺序不取决于array_of_ids的顺序。有什么办法可以找到并保留顺序吗?ATM我根据ID的顺序手动对记录进行排序,但这有点蹩脚。UPD:如果可以使用:order参数和某种SQL子句指定顺序,那么如何? 最佳答案 奇怪的是,没有人提出这样的建议:index=Something.find(array_of_ids).group_by(&:id)array_of_ids.map{|i|index[i].first}除了让SQL后端执行它之外,尽

arrays - 如何在 ruby​​ 中对哈希数组进行排序

我有一个数组,每个元素都是一个包含三个键/值对的散列::phone=>"2130001111",:zip=>"12345",:city=>"sometown"我想按zip对数据进行排序,以便同一区域中的所有phone都在一起。Ruby是否有简单的方法来做到这一点?will_paginate可以对数组中的数据进行分页吗? 最佳答案 简单:array_of_hashes.sort_by{|hsh|hsh[:zip]}注意:当使用sort_by时,您需要将结果分配给一个新变量:array_of_hashes=array_of_hashes

arrays - 将元素推到数组开头的最简单方法是什么?

我想不出一种单行方式来做到这一点。有办法吗? 最佳答案 使用unshift怎么样?方法?ary.unshift(obj,...)→aryPrependsobjectstothefrontofself,movingotherelementsupwards.并在使用中:irb>>a=[0,1,2]=>[0,1,2]irb>>a.unshift('x')=>["x",0,1,2]irb>>a.inspect=>"["x",0,1,2]" 关于arrays-将元素推到数组开头的最简单方法是什么?

arrays - 如何在 Ruby 中拆分分隔字符串并将其转换为数组?

我有一个字符串“1,2,3,4”我想把它转换成一个数组:[1,2,3,4]如何? 最佳答案 >>"1,2,3,4".split(",")=>["1","2","3","4"]或者对于整数:>>"1,2,3,4".split(",").map{|s|s.to_i}=>[1,2,3,4]或者对于更高版本的ruby​​(>=1.9-正如Alex所指出的):>>"1,2,3,4".split(",").map(&:to_i)=>[1,2,3,4] 关于arrays-如何在Ruby中拆分分隔字符串

arrays - Ruby 中的数组切片 : explanation for illogical behaviour (taken from Rubykoans. com)

我正在做RubyKoans中的练习我对以下Ruby怪癖感到震惊,我发现它真的无法解释:array=[:peanut,:butter,:and,:jelly]array[0]#=>:peanut#OK!array[0,1]#=>[:peanut]#OK!array[0,2]#=>[:peanut,:butter]#OK!array[0,0]#=>[]#OK!array[2]#=>:and#OK!array[2,2]#=>[:and,:jelly]#OK!array[2,20]#=>[:and,:jelly]#OK!array[4]#=>nil#OK!array[4,0]#=>[]#HUH