Tôi có một mảng được gọi là @friend_comparisons có nhiều đối tượng người dùng. sau đó tôi sắp xếp mảng bằng cách sử dụng như sau:Lấy tổng số mục mảng đáp ứng một tiêu chí nhất định
@friend_comparisons.sort! { |a,b| b.completions.where(:list_id => @list.id).first.counter <=> a.completions.where(:list_id => @list.id).first.counter }
này được sắp xếp mảng bởi một bộ đếm nhất định gắn liền với mỗi người dùng (các chi tiết cụ thể trong số đó là không quan trọng đối với câu hỏi).
Tôi muốn tìm hiểu xem có bao nhiêu đối tượng người dùng trong mảng có bộ đếm lớn hơn một số nhất định (giả sử 5). Làm thế nào để tôi làm điều này?
Sau đây là cách tôi hiện đang giải quyết vấn đề:
@friends_rank = 1
for friend in @friend_comparisons do
if friend.completions.where(:list_id => @list.id).first.counter > @user_restaurants.count
@friends_rank = @friends_rank + 1
end
end
Tôi có cần phải lặp qua từng mục mảng và kiểm tra điều kiện và sau đó thêm một đánh dấu cho một bộ đếm nếu điều kiện là đã gặp hoặc là có một cách để làm điều này mà không cần sử dụng một truy cập lặp đi lặp lại? – Alex