Ruby mendapatkan kunci objek sebagai array

97

Saya baru mengenal Ruby, jika saya memiliki objek seperti ini

{"apple" => "fruit", "carrot" => "vegetable"}

Bagaimana saya bisa mengembalikan array hanya kunci?

["apple", "carrot"]
JD Isaacks
sumber
Objek Anda adalah Hash, jadi Anda dapat menggunakan keysmetode seperti {"apple" => "fruit", "carrot" => "vegetable"}.keys. Untuk info lebih lanjut kunjungi ruby-doc.org/core-1.9.3
taro

Jawaban:

217
hash = {"apple" => "fruit", "carrot" => "vegetable"}
array = hash.keys   #=> ["apple", "carrot"]

sesederhana itu

weezor
sumber
16

Cara alternatif jika Anda membutuhkan sesuatu yang lebih (selain menggunakan keysmetode):

hash = {"apple" => "fruit", "carrot" => "vegetable"}
array = hash.collect {|key,value| key }

jelas Anda hanya akan melakukannya jika Anda ingin memanipulasi array saat mengambilnya kembali ..

Tigraine
sumber
4

Seperti yang dikatakan talas, keyskembalikan array kunci Hash Anda:

http://ruby-doc.org/core-1.9.3/Hash.html#method-i-keys

Anda akan menemukan semua metode berbeda yang tersedia untuk setiap kelas.

Jika Anda tidak tahu apa yang Anda hadapi:

 puts my_unknown_variable.class.to_s

Ini akan menampilkan nama kelas.

iliptik
sumber
2

Gunakan keysmetode:{"apple" => "fruit", "carrot" => "vegetable"}.keys == ["apple", "carrot"]

ridecar2
sumber