Ho un array chiamato @friend_comparisons che è popolato con un numero di oggetti utente. Poi ordinare l'array usando la seguente:Ottenere un conteggio di elementi di matrice che soddisfano determinati criteri
@friend_comparisons.sort! { |a,b| b.completions.where(:list_id => @list.id).first.counter <=> a.completions.where(:list_id => @list.id).first.counter }
Questa è l'ordinamento della matrice per un certo contatore associato a ogni utente (le specifiche di cui non sono importanti per la domanda).
Voglio scoprire quanti oggetti utente nella matrice hanno un contatore che è maggiore di un certo numero (diciamo 5). Come faccio a fare questo?
Ecco come Attualmente sto risolvere il problema:
@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
Ho bisogno di scorrere ogni elemento dell'array e controllare le condizioni e quindi aggiungere un segno di spunta ad un contatore se la condizione è incontrato o c'è un modo per farlo senza usare un contatore iterativo? – Alex