Helpex - Trao đổi & giúp đỡ Đăng nhập
39

Làm thế nào bạn có thể lặp qua một mảng đối tượng và trả về toàn bộ đối tượng nếu một thuộc tính nhất định là đúng?

Tôi có những thứ sau trong ứng dụng rails của mình

array_of_objects.each { |favor| favor.completed == false }

array_of_objects.each { |favor| favor.completed }

nhưng vì lý do nào đó mà hai cái này trả về cùng một kết quả! Tôi đã cố gắng để thay thế eachvới collect, map, keep_ifcũng như !favor.completedthay vì favor.completed == falsevà không ai trong số họ làm việc!

Bất kỳ sự trợ giúp nào cũng được đánh giá cao!

39 hữu ích 5 bình luận 43k xem chia sẻ
47
array_of_objects.select { |favor| favor.completed == false }

Sẽ trả về tất cả các đối tượng đã hoàn thành là sai.

Bạn cũng có thể sử dụng find_allthay thế select.

47 hữu ích 5 bình luận chia sẻ
14

Đối với trường hợp đầu tiên,

array_of_objects.reject(&:completed)

Đối với trường hợp thứ hai,

array_of_objects.select(&:completed)
14 hữu ích 4 bình luận chia sẻ
2

Bạn cần sử dụng Enumerable#find_allđể lấy tất cả các đối tượng phù hợp.

array_of_objects.find_all { |favor| favor.completed == false }
2 hữu ích 2 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ruby-on-rails arrays ruby , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading