trouver la médiane des valeurs de tableau en javascript (8 valeurs ou des 9 valeurs)
Comment puis-je trouver les valeurs médianes de tableau en javascript
c'est mon tableau
var data = [
{ values: 4 },
{ values: 4 },
{ values: 4 },
{ values: 5 },
{ values: 2 },
{ values: 6 },
{ values: 6 },
{ values: 5 }
];
et j'ai essayé ce code
function findMedian(m) {
var middle = m.length - 1 / 2;
if (m.length - 1 % 2 == 1) {
return m[middle];
} else {
return (m[middle - 1] + m[middle]) / 2.0;
}
}
Mais il est de retour NaN
valeur
Ma formule de calcul est
Trouver la médiane des données. Le nombre de données dans l'ordre croissant. Ensuite, marquer l'endroit dont la valeur nous prendre en compte lors du calcul de la médiane.
Le milieu c'est un nombre décimal, et donc tableau[7.5] il est indéfini (l'indice doit être de type entier, vous pouvez utiliser Math.sol ou Math.ceil). Aussi, je ne sais pas si c'alogrithm c'est correct.
Vous faites var moyen = m.longueur - (1 / 2); (regardez la parenthèse). Opérateur de Division a la préséance sur moins de l'opérateur.
Vous faites var moyen = m.longueur - (1 / 2); (regardez la parenthèse). Opérateur de Division a la préséance sur moins de l'opérateur.
OriginalL'auteur | 2014-08-14
Vous devez vous connecter pour publier un commentaire.
Cela va faire ce dont vous avez besoin au moment où vous l'avez aucune logique à faire face avec la lecture de la
.values
champ à la sortie de chaque élément du tableau:MODIFIER j'ai rembourré le code un peu par rapport à ma réponse originale à cette question pour des raisons de lisibilité, et inclus l' (surprenant pour moi) de la convention que la médiane d'une longueur visée à la moyenne des deux éléments de chaque côté du milieu.
OriginalL'auteur Alnitak
Ici à propos de deux choses, vous devez être prudent.
1) la priorité de l'Opérateur
Quand vous dites
C'est même comme
De sorte que vous devriez dire
Même problème avec
m.length - 1 % 2
2) Vous n'êtes pas d'arrondi
middle
de sorte qu'il est à la recherche pour les décimales index dans le tableau. Qui, je pense, sera de retourundefined
.OriginalL'auteur Mritunjay
Pour un tableau de nombres, par exemple
[1,6,3,9,28,...]
Ce que fait le code:
Dans votre question, votre tableau peut être aplatie comme suit:
Et pour obtenir la médiane, utilisez la fonction ci-dessus comme suit:
OriginalL'auteur Harry Stevens
il retourne pour un nombre impair d'éléments du tableau.
OriginalL'auteur Brijesh