J'ai recherché/googlé autour, mais je suis aux prises avec le problème suivant.LocalJumpError (Ruby on Rails)
Je construis une application Rails 2.3.2 et l'une des exigences est de calculer la médiane d'un tableau de résultats. J'utilise du code pour calculer la médiane à partir du livre de recettes Ruby mais je continue à rencontrer un problème avec la réception d'une erreur 'LocalJumpError - aucun bloc donné' lorsque j'essaie de trouver la médiane d'un tableau contenant un nombre impair de membres.
Le code exemple à mon avis est la suivante:
<%= survey_response.median([6,4,5,4,4,2]) %>
ensuite dans le modèle survey_response.rb les méthodes sont les suivantes:
def mean(array)
array.inject(array.inject(0) { |sum, x| sum += x }/array.size.to_f)
end
def median(array,already_sorted=false)
return nil if array.empty?
array = array.sort unless already_sorted
m_pos = array.size/2
return array.size % 2 == 1 ? array[m_pos] : mean(array[m_pos-1..m_pos])
end
L'erreur est provoquée lorsque la méthode médiane renvoie à la méthode moyenne pour obtenir le média d'un total impair d'éléments dans le tableau. Je n'arrive pas à comprendre pourquoi je reçois cette erreur ou même comment y remédier - alors j'apprécierais énormément toute aide/conseil/rire que n'importe qui pourrait m'offrir!
Merci
Simon
Hey merci de répondre - malheureusement, cela ne fait aucune différence. Je reçois toujours la même erreur lorsqu'il y a un nombre impair d'éléments dans le tableau. Y a-t-il d'autres informations que je peux fournir qui pourraient être utiles? – simonyoung
Merci - avec la fonction edit to the mean() cela fonctionne également un régal. – simonyoung