Comment remplacer un tableau d'élément?
Comment puis-je substituer un élément dans un tableau?
a = [1,2,3,4,5]
J'ai besoin de remplacer 5 avec [11,22,33,44].flatten!
de sorte que a
devient maintenant
a = [1,2,3,4,11,22,33,44]
- merci de nous donner l'explication de pourquoi vous avez besoin pour ce faire et dans quel contexte c'est
- souhaiterez peut-être modifier le titre " comment dois-je remplacer les éléments du tableau dans un ruby 'chaque' style itérateur
Vous devez vous connecter pour publier un commentaire.
Ne sais pas si vous êtes à la recherche de substituer une valeur particulière ou pas, mais cela fonctionne:
Ce effectue une itération sur les valeurs de
a
, et quand il trouve une valeur de5
, il remplace cette valeur avec le tableaub
, puis s'aplatit les tableaux dans un tableau.ary = (0..100).to_a ary.map!{|i| i % 3 == 0 ? i : "BINGO" }
Il remplace tous à l'exception de celles divisibles par 3Peut-être vous dire:
Une solution fonctionnelle pourrait être plus agréable, que diriez-vous simplement:
qui donne...
a[4]
pasa[5]
La version de bta à l'aide d'un.index(5) est le plus rapide:
Au moins 10% plus rapide que Ryan McGeary's:
Toutefois, notez qu'un.index(5) ne retourne que le premier index où 5 est trouvé.
Donc, étant donné un tableau où 5 apparaît plus d'une fois, les résultats seront différents:
Tableau#supprimer sera de retour à l'élément ou à néant. Vous pouvez l'utiliser pour savoir si ou de ne pas pousser vos nouvelles valeurs
Vous n'avez pas vraiment à s'aplatir, si vous venez de les concaténer. Afin de couper le dernier élément de la première matrice et de les enchaîner:
a[0..-2] est une tranche de l'opération qui prend tous, mais le dernier élément du tableau.
Espère que cela aide!
Cette variante trouverez la
5
n'importe où dans le tableau il.Ici est un autre moyen simple de remplacer la valeur
5
dans le tableau:Il utilise le
Array#[]=
méthode. Je ne suis pas sûr de savoir exactement pourquoi il fonctionne bien.gweg, pas sûr de ce que vous essayez de faire ici, mais vous cherchez quelque chose de ce genre?
Il y a un certain nombre de façons de le faire -- je ne pense pas que le code ci-dessus est particulièrement agréable à regarder. Tout dépend de la signification de '5' dans votre tableau d'origine.