Các thao tác với hash trong ruby
Bài đăng này đã không được cập nhật trong 7 năm
Bài viết này sẽ giới thiệu các kiến thức về các thao tác khi làm việc với hash trong Ruby.
Tạo một hash mới
hash = {} // tạo hash có giá trị rỗng
hash = {a: 1, b: 2} // => {a: 1, b: 2} , tạo hash có key là a với giá trị 1 và key b với giá trị 2
Lấy giá trị từ hash
hash = {a: 1, b: 2}
hash[:a] // => 1
hash[:b] // => 2
Có thể dùng fetch
hash.fetch(:a) // => 1
hash.fetch(:b) // => 2
Thêm data vào trong hash
hash = {a: 1, b: 2}
hash[:c] = 3 // => hash = {:a=>1, :b=>2, :c=>3}
Xóa data trong hash
hash.delete(:a) // hash = {:b=>2, :c=>3}
h.clear // => hash = {}
Dùng reject để loại bỏ một số data trong hash theo điều kiện
hash = {a: 1, b: 2, c: 3}
hash.reject {|key, value| key == :b}
// => trả về {a: 1, c: 3},
// => giá trị hash vẫn giữ nguyên hash = {a: 1, b: 2, c: 3}
hash.reject! {|key, value| key == :b}
// => trả về {a: 1, c: 3},
// => giá trị hash = {a: 1, c: 3}
Các thao tác khác
Dùng each
vòng lặp mỗi thuộc tình trong hash
hash = {a: 1, b: 2, c: 3}
hash.each do |key, val|
puts "#{key}" # => a b c
end
Dùng each_key
nếu chỉ cần key
của hash
hash.each_key do |key|
puts "#{key}" # => a b c
end
Dùng each_value
nếu chỉ cần value
của hash
hash.each_value do |val|
puts "#{val}" # 1 2 3
end
Kiểm tra key
tồn tại trong hash
hash = {a: 1, b: 2, c: 3}
hash.has_key?(:a) # => true
hash.include?(:b) # => true
hash.key?(:c) # => true
hash.member?(:d) # => false
Kiểm tra hash rỗng empty?
hash = {a: 1, b: 2, c: 3}
hash.empty? // true
Độ dài hash
hash = {a: 1, b: 2, c: 3}
hash.length // => 3
Sắp xếp hash (sắp xếp theo key)
hash = {b: 1, c: 2, a: 3, d: 4}
hash.sort // => [[:a, 3], [:b, 1], [:c, 2], [:d, 4]]
Merge 2 hash
hash1 = {a: 1, b: 2, c: 3}
hash2 = {a: 5, d: 4}
hash1.update(hash2) // {:a=>5, :b=>2, :c=>3, :d=>4}
hash1.merge(hash2) // {:a=>5, :b=>2, :c=>3, :d=>4}
All rights reserved