Istnieje wiele sposobów, aby to osiągnąć wspólne zadanie
odrzucenia
To jest ten, którego używam najczęściej do czyszczenia skrótów, ponieważ jest krótki, czysty i wystarczająco elastyczny do obsługi dowolnych warunkowych i nie zmutowuje oryginalnego obiektu. Oto good article na temat korzyści wynikających z niezmienności w Ruby.
hash.reject {|_,v| v.blank?}
Uwaga: podkreślenia w powyższym przykładzie jest używany do wskazania, że chcemy rozpakować krotka przekazany do proc, ale nie używamy pierwszą wartość (klawisz).
odrzucić!
Jednak jeśli chcesz mutować oryginalnego obiektu:
hash.reject! {|_,v| v.blank?}
wybrać
odwrotnie, należy użyć select, która zwróci tylko te wartości, które zwracają prawdę, gdy oceniano
hash.select {|_,v| v.present? }
Wybierz!
... i mutowania wersja
hash.select {|_,v| v.present? }
kompaktowy
Wreszcie, kiedy tylko trzeba usunąć klucze, które mają nil
wartości ...
hash.compact
kompaktowy!
Wybrałeś już wzór, ale jest to wersja, która modyfikuje oryginalny skrót!
hash.compact!
Czy chcesz zachować ': g => []' i 'h => {}'? –