有单词表和禁用词表。我想浏览单词列表并编辑所有禁用的单词。这就是我最终所做的(注意catchedbool值):puts"Giveinputtext:"text=gets.chompputs"Giveredactedword:"redacted=gets.chompwords=text.split("")redacted=redacted.split("")catched=falsewords.eachdo|word|redacted.eachdo|redacted_word|ifword==redacted_wordcatched=trueprint"REDACTED"breakend
在ruby中,我如何测试一个数组不仅包含另一个数组的元素,而且以特定顺序包含它们?correct_combination=[1,2,3,4,5][1,5,8,2,3,4,5].function_name(correct_combination)#=>false[8,10,1,2,3,4,5,9].function_name(correct_combination)#=>true我尝试使用include,但那是用来测试[1,2,3].include?(2)是否为真。 最佳答案 你可以使用each_cons方法:arr=[1,2,3
从像下面这样的散列中,需要提取每个键的唯一值array_of_hashes=[{'a'=>1,'b'=>2,'c'=>3},{'a'=>4,'b'=>5,'c'=>3},{'a'=>6,'b'=>5,'c'=>3}]需要提取数组中每个键的唯一值'a'的唯一值应该给[1,4,6]'b'的唯一值应该给[2,5]“c”的唯一值应该给[3]想法? 最佳答案 使用Array#uniq:array_of_hashes=[{'a'=>1,'b'=>2,'c'=>3},{'a'=>4,'b'=>5,'c'=>3},{'a'=>6,'b'=>5,'c
假设我有以下数组:views=[{:user_id=>1,:viewed_at=>'2012-06-2917:03:28-0400'},{:user_id=>1,:viewed_at=>'2012-06-2917:04:28-0400'},{:user_id=>2,:viewed_at=>'2012-06-2917:05:28-0400'},{:user_id=>3,:viewed_at=>'2012-06-2917:06:28-0400'},{:user_id=>1,:viewed_at=>'2012-06-2917:07:28-0400'},{:user_id=>1,:viewed
如果array=[1,2,3,4,5,6,7,8,9],我想从数组中删除一系列元素。例如:我想从该数组中删除索引在2..5范围内的所有元素,结果应该是[1,2,7,8,9]提前致谢。 最佳答案 使用slice!:Deletestheelement(s)givenby[...]arange.array=[1,2,3,4,5,6,7,8,9]array.slice!(2..5)array#=>[1,2,7,8,9] 关于ruby-如何从数组中删除一系列值?,我们在StackOverflow上
这是我现在所拥有的,它有点管用:defpadding(a,b,c=nil)untila[b-1]a这是它起作用的时候:a=[1,2,3]padding(a,10,"YES")=>[1,2,3,"YES","YES","YES","YES","YES","YES","YES"]a[1,2,3]padding(a,10,1)=>[1,2,3,1,1,1,1,1,1,1]但是当我没有为“c”输入值时它崩溃了a=[1,2,3]padding(a,10)Killed我应该如何附加它以避免崩溃?此外,您建议如何更改此方法以按如下方式使用它:[1,2,3].padding(10)=>[1,2,3,n
假设我们有一个散列:flash={}flash[:error]="Thisisanerror."flash[:info]="Thisisaninformation."我想把它转换成一个字符串:"Thisisanerror.Thisisaninformation".在一个漂亮的衬里;)我发现了类似的东西:flash.to_a.collect{|item|"#{item[1]}"}.join这解决了我的问题,但也许哈希表类中内置了更好的解决方案? 最佳答案 Hash包括Enumerable,所以你可以使用collect:flash.co
最好的方法是:我有两个数组:a=[['a','one'],['b','two'],['c','three'],['d','four']]和b=['two','three']我想删除a中包含b中的元素的嵌套数组,得到这个:[['a','one']['d','four']谢谢。 最佳答案 a=[['a','one'],['b','two'],['c','three'],['d','four']]b=['two','three']a.delete_if{|x|b.include?(x.last)}pa#=>[["a","one"],["d
我有一个包含数字的散列:{0=>0.07394653730860076,1=>0.0739598476853163,2=>0.07398647083461522}它需要被转换成一个数组,如:[[0,0.07394653730860076],[1,0.0739598476853163],[2,0.07398647083461522]]我尝试了我的hash.values这让我:[0.07398921877505593,0.07400253683443543,0.07402917535044515]我尝试了多种方法,但我才刚刚开始学习ruby。 最佳答案
...或者一个防止重复条目的数组。Ruby中是否有某种对象:响应[]、[]=和默默地删除重复的条目是可枚举的(或至少支持find_all)保留条目插入的顺序?据我所知,数组支持点1、3和4;而Set支持1、2和3(但不支持4)。而SortedSet不会做,因为我的条目没有实现。 最佳答案 从Ruby1.9开始,内置的Hash对象保留了插入顺序。例如:h={}h[:z]=1h[:b]=2h[:a]=3h[:x]=0ph.keys#=>[:z,:b,:a,:x]h.delete:bph.keys#=>[:z,:a,:x]h[:b]=1p