Poniższe odpowiedzi są poprawne ( hash.valuesbędąc lepszą IMO). Ale chciałem zwrócić uwagę, że gdy podasz blok, po Hash#eachprostu zwróci pełną wartość skrótu. Jeśli chcesz wykonać operację na każdym elemencie i zwrócić to jako tablicę, użyj Hash#collectlub jego aliasu Hash#map. Więcej informacji o Enumerables tutaj .
Hash#valuesjest nie tylko prostszy, ale i wydajniejszy. Porównaj time ruby -e '(1..1000000).reduce({}){|h,i| h.store i,i; h}.values'ztime ruby -e '(1..1000000).reduce({}){|h,i| h.store i,i; h}.map{|k,v| v}'
+1 (Oszołomiony niesamowicie po wypróbowaniu twojego kodu) Spędziłem jeden dzień bez powodzenia na usuwaniu indeksu wieloma metodami ... Wszystko, co mogę powiedzieć, bardzo dziękuję !!! : D
hash.collect {|k, v| v }#returns [["a", "b", "c"], ["b", "c"]]
Enumerable#collectprzyjmuje blok i zwraca tablicę wyników wykonania bloku raz dla każdego elementu wyliczalnego. Więc ten kod po prostu ignoruje klucze i zwraca tablicę wszystkich wartości.
EnumerableModuł jest dość niesamowite. Znajomość tego może zaoszczędzić mnóstwo czasu i mnóstwo kodu.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.
hash.valuesbędąc lepszą IMO). Ale chciałem zwrócić uwagę, że gdy podasz blok, poHash#eachprostu zwróci pełną wartość skrótu. Jeśli chcesz wykonać operację na każdym elemencie i zwrócić to jako tablicę, użyjHash#collectlub jego aliasuHash#map. Więcej informacji o Enumerables tutaj .