Tôi đang cố gắng loại bỏ khỏi ví dụ NHẬN DẠNG
Và tên
toàn bộ dòng của 001
Và 002
:
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.
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'] }
Tôi là một lập trình viên xuất sắc, rất giỏi!