"000", "name"=>"Bob"}, {"id"=>"001", "na-6ren">
cuốn sách gpt4 ai đã làm

Làm cách nào để loại bỏ các phần tử khỏi mảng băm trong Ruby?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:21:16 25 4
mua khóa gpt4 Nike

Tôi đang cố gắng loại bỏ khỏi ví dụ NHẬN DẠNGtên toàn bộ dòng của 001002 :

mẫu = [{"id"=>"000", "name"=>"Bob"},
{"id"=>"001", "name"=>"Sally"},
{"id"=>"002", "name"=>"Spike"},
{"id"=>"003", "name"=>"Junior"},
{"id"=>"004", "name"=>"Tater"}]

Remove_ele = ["001","002"]

Tôi đã thử những cách sau nhưng có vẻ như nó không hoạt động:

sample.delete_if { |key, value|sample[x]["id"] == Remove_ele[x] }

Về cơ bản, tôi đang cố gắng so sánh 2 và xóa_ele bất kỳ kết quả phù hợp nào trong , nó sẽ chỉ xóa sample toàn bộ hàng/phần tử trong .

Hãy giúp đỡ về cách tốt nhất để làm điều này trong Ruby.

câu trả lời hay nhất

bạn cung cấp cho xóa_if Có một số vấn đề với khối này:

sample.delete_if { |key, value|

由于 sample là một mảng băm, sử dụng xóa_if Trình vòng lặp sẽ chuyển hàm băm vào khối. tức là. nó phải như vậy |băm| thay vì |khóa, giá trị|.

Thứ hai,x Sẽ không được xác định trong khối của bạn.

Một giải pháp thực tế là thế này:

Remove_ele.mỗi người thực hiện |id_to_remove|
sample.delete_if { |hash| băm['id'] == id_to_remove }
end

Hoặc, nó làm điều tương tự:

sample.delete_if { |hash| loại bỏ_ele.include hàm băm['id'] }

Làm cách nào để loại bỏ các phần tử khỏi mảng băm trong Ruby? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/38861432/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress