Ruby trouver et ramener des objets dans un tableau basé sur un attribut
Comment pouvez-vous parcourir un tableau d'objets et de retour de la totalité de l'objet, si un attribut est-il correct?
J'ai de la suite dans mon application rails
array_of_objects.each { |favor| favor.completed == false }
array_of_objects.each { |favor| favor.completed }
mais pour certaines raisons, ces deux retournent le même résultat! J'ai essayé de remplacer each
avec collect
, map
, keep_if
ainsi que !favor.completed
au lieu de favor.completed == false
et aucun d'eux n'a fonctionné!
Toute aide est très appréciée!
Ce que je veux est le retour de l'ensemble de l'objet
le
Juste pour qualifier @sucre commentaire, quand il a un bloc, Array# retourne son récepteur.
Qu'entendez-vous par "retour de la "? Voulez-vous dire que vous souhaitez retourner un tableau de ces objets à partir du premier tableau pour lequel un attribut donné évalue
oui c'est ce que je voulais dire. Je ne veux pas avoir l'attribut retourné
favor
si favor.completed
et si !favor.completed
le
each
méthode renvoie toujours le tableau d'origine.Juste pour qualifier @sucre commentaire, quand il a un bloc, Array# retourne son récepteur.
Qu'entendez-vous par "retour de la "? Voulez-vous dire que vous souhaitez retourner un tableau de ces objets à partir du premier tableau pour lequel un attribut donné évalue
true
? Ou vaut "faux"?oui c'est ce que je voulais dire. Je ne veux pas avoir l'attribut retourné
OriginalL'auteur fardin | 2016-01-30
Vous devez vous connecter pour publier un commentaire.
Sera de retour tous les objets qui est terminé est faux.
Vous pouvez également utiliser
find_all
au lieu deselect
.select
?Ne pas comprendre
non-destructive
, désolé.select
modifications du tableau d'origine, je me demandais juste si il y a une spécialisées similaires méthode qui garde le tableau d'origine intact?Pas de
select
ne change pasself
.select!
.Oh oui, je vois maintenant. Suis confus pour l'instant.
OriginalL'auteur Babar
Pour le premier cas,
Pour le deuxième cas,
Merci pour les paroles aimables.
ce qui ne l' :& dire?
Veuillez consulter la stackoverflow.com/questions/9429819/...
OriginalL'auteur Wand Maker
Vous devez utiliser
Énumérable#find_all
de la totalité des objets correspondants.mal lu.. 🙂
les deux
find
et "find_all" sont de retour nul pour moi! 🙁 très ennuyeuxc'est le tableau d'objets, je vais appeler sur
[#<RequestedFavor id: 8, title: "Moving day", description: "Help me move to my new flat please!", user_id: 1, completed: false, created_at: "2016-01-30 18:19:33", updated_at: "2016-01-30 18:19:33", type: "RequestedFavor">, #<OfferedFavor id: 9, title: "Got two hours free", description: "I can spare two hours on Friday", user_id: 1, completed: false, created_at: "2016-01-30 18:19:52", updated_at: "2016-01-30 18:19:52", type: "OfferedFavor">]
OriginalL'auteur Arup Rakshit