- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
从哈希 relations
我想删除一些条目并将我删除的条目保留在另一个哈希 obj
中。
我找到了 Hash.delete_if
并做了:
obj = relations.delete_if{|k,v| v[:value] == 1}
但是,它不会返回已移除的那些,而是返回未移除的那些。
有没有办法做到这一点?
最佳答案
您可以使用 partition
method :
{x: 1, y: 0, z: 2, t: 1}.partition {|k, v| v == 1}
# => [[[:x, 1], [:t, 1]], [[:y, 0], [:z, 2]]]
然后您必须将结果转回哈希,为此您可以使用 Hash[]
method :
{x: 1, y: 0, z: 2, t: 1}.partition{|k, v| v == 1}.map{|h| Hash[h]}
# => [{:x => 1, :t => 1}, {:y => 0, :z => 2}]
所以按照你的要求去做:
obj, relations = relations.partition{|k, v| v[:value] == 1}.map{|h| Hash[h]}
关于ruby-on-rails - Hash.delete_if 返回删除的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13862136/
我试图使用elasticsearch为我的Rails应用添加搜索。 所以我写了这段代码,但是在提交搜索查询后,我遇到了这个错误:“我的搜索查询”的未定义方法`delete_if':字符串 产品 Con
这段代码: string="abacdb" string=string.split("") string.delete_if{|x| x==string[0]} puts(string) 返回 ["b
我有一个数组,我想执行 delete_if在该数组的一个子集(任何 n 项)上(并且它修改内存中的数组) 有了完整的阵列我可以做到 array.delete_if do |item| should
作为 Ruby 的新手,我对 .reject 之间的区别有疑问!和 .delete_if 处理哈希和数组时的方法。如果只是想摆脱某些对象,这些方法在功能上有什么区别吗?以及为什么要使用一个而不是另一个
为什么在这段代码之后输出是:[9.5]?我的意思是..为什么delete_if方法甚至从我的数组中删除我的“a”? x = [1, 2, 3, 'a', 9.5] x.delete_if{ |elem
为什么在这段代码之后输出是:[9.5]?我的意思是..为什么delete_if方法甚至从我的数组中删除我的“a”? x = [1, 2, 3, 'a', 9.5] x.delete_if{ |elem
我有一个数组 array_hash = [ { "array_value" => 1, "other_values" => "whatever", "inner_value
从哈希 relations 我想删除一些条目并将我删除的条目保留在另一个哈希 obj 中。 我找到了 Hash.delete_if 并做了: obj = relations.delete_if{|k,
我想构建一个自定义方法Array#drop_every(n)(我知道这是猴子修补,我这样做是为了做功课),它返回一个新数组,省略每个第 n 个元素: [4, 8, 15, 16, 23, 42].dr
Some_hash.delete_if {|key, value| key == "at" || key == "with" || key == "from"} 我只包括了 3 个 or,但我有一个
当我在 ruby 中有一个数组时,我可以在其上运行 delete_if block 。问题是它从我的数组中删除了元素。我想要相同的功能,只是不对原始数组进行更改,而是返回一个删除了对象的新数组。
words.delete_if do |x| x == ("a"||"for"||"to"||"and") end words 是一个包含很多单词的数组。我的代码删除了“a”,但没有删除“for”
根据 Ruby Hash/Array 文档,如果没有给出 block ,delete_if 方法返回一个枚举器。这有什么用?有人可以举例说明这种模式吗? 最佳答案 在 Enumerator 上定义了一
我为你们准备了一个简单的。 我想要一个特色内容部分,其中排除了当前文章 所以这可以通过 delete_if 使用 Middleman Blog: 但是我使用的是中间人代理,所以我无法访问 c
我想从 Active Record 集合中删除元素,为此我尝试使用 delete_if。以下是我的收藏: categories = Category.all groups = Group.all
好的,我正在使用 RestClient 并发送: {"x_select_params":["account.*"],"domain":"thedomain"} 通过 response = RestCl
我正在研究 acts_as_taggable_on 插件,但有些东西我无法真正理解(即使它只是一个非常简单的代码行)。 puts "before: " + cache.inspect# cache.d
对于 Ruby 中的 Hash,reject! 和 reject 与 delete_if 有何不同?谁能用简单的代码片段解释它们之间的区别? 最佳答案 由于其他答案指的是 Array#delete_i
我是一名优秀的程序员,十分优秀!