从哈希数组中删除 nil 值

Neh*_*eha 0 ruby arrays hash

我的哈希数组是这样的:

[
  {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!107", :name=>"Folder 11", :type=>"folder"},
  {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!105", :name=>"Pictures", :type=>"album"}, 
  {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!113", :name=>"Public", :type=>"folder"}, 
  {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!124", :name=>"sasd", :type=>"folder"}, 
  {:id=>nil, :name=>nil, :type=>nil}, 
  {:id=>nil, :name=>nil, :type=>nil},
  {:id=>nil, :name=>nil, :type=>nil},
  {:id=>nil, :name=>nil, :type=>nil}, 
  {:id=>nil, :name=>nil, :type=>nil}, 
  {:id=>nil, :name=>nil, :type=>nil}, 
  {:id=>nil, :name=>nil, :type=>nil}
]
Run Code Online (Sandbox Code Playgroud)

我怎样才能去除nil,如果在我的哈希值idnil

pot*_*hin 5

您可以使用reject

arr.reject{|h| h[:id].nil?}

=> [{:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!107", :name=>"Folder 11", :type=>"folder"},
    {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!105", :name=>"Pictures", :type=>"album"},
    {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!113", :name=>"Public", :type=>"folder"},
    {:id=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!124", :name=>"sasd", :type=>"folder"}]
Run Code Online (Sandbox Code Playgroud)

演示

或者select

arr.select { |h| h[:id] }
Run Code Online (Sandbox Code Playgroud)

演示