0
votes

Comment imprimer du contenu d'un tableau à l'intérieur de chaque_with_index en fonction de l'index?

J'ai deux tableaux: xxx

et je veux une sortie comme: xxx

maintenant, comme il est important que chacun Item in Array B est aligné sur l'ordre des valeurs dans le tableau A , j'ai décidé d'écrire un chaque_with_index de la boucle afin que je puisse être capable Pour extraire des données à la position souhaitée du tableau B : xxx

mais je reçois cette erreur: xxx < / pré>

que je trouve plutôt étrange, car le hachage à cette position n'est pas vide.

Si j'imprime tout le contenu de la matrice à cette position, il fonctionne, par exemple: xxx

qui donne: xxx

mais je ne peux pas spécifier une clé à l'intérieur du hachage pour imprimer le contenu de? Quoi de neuf avec ça?


4 commentaires

Non, a mis à jour le code dans ma question


Do p b [i] au lieu de puts b [i] . Un de vos hatupes est nul (quand vous pensez que ce n'est pas)


Ah, c'était la question, poster cela comme une réponse et je vais l'accepter!


@bork quoi que ce dernier exemple avec met B [i] - Comment cela pourrait-il fonctionner éventuellement si l'un des hachages est en fait nil ?


3 Réponses :


0
votes

Vous n'avez pas besoin a tableau xxx


2 commentaires

Fwiw, with_index accepte un argument d'index de démarrage. .with_index (1) permet d'éviter NASTY # {index + 1 .


@Sergiotulentsev C'est pourquoi il a une ouverture "FWIW" :) s'avère que je ne peux plus faire de rubis, il fait tomber littéralement. La langue est si stupide :-p



0
votes

Essayez en suivant:

output = a.map.with_index do |a_value, i| 
  "#{a_value}. #{b[i][:item]} #{b[i][:quantity]}"
end.join(' ')
puts output


1 commentaires

Ce n'est pas différent de ce qu'ils font.



1
votes

Mais je ne peux pas spécifier une clé à l'intérieur du hachage pour imprimer le contenu de? Quoi de neuf avec ça?

Cela n'a pas de sens, bien sûr. Si vous avez un hash, vous pouvez obtenir ses clés / valeurs. Le problème ici est que vous ne avez-vous un hash. Au lieu de cela, l'un de vos b [i] est nul (qui déclenche l'erreur).

Vérifiez-le en les imprimant avec p b [i] au lieu de met B [i] . .


0 commentaires