J'ai un tableau de chaînes que j'ai besoin de convertir en un tableau de nombres avec des nombres décimaux. Le tableau de chaînes ressemble à ceci:Pourquoi JavaScript parseFloat ajoute-t-il une valeur supplémentaire à la boucle?
var array = [" 169.70", " 161.84", " 162.16", " 176.06", " 169.72", " 170.77", " 172.74", " 175.73", " 0.00", " 0.00", " 0.00", " 0.00"]
J'ai créé une courte fonction pour analyser chaque élément de tableau qui va comme ceci:
function parseFloatArray(array) {
var parsedArray = [];
for (var i = 0; i < array.length ; i++) {
parsedArray[i] = parseFloat(array[i]);
parsedArray.push(parsedArray[i]);
console.log(parsedArray[i]);
};
return parsedArray;
}
Logging array.length me donne une valeur de 12. La se connecter à la boucle for renvoie également 12 valeurs individuelles. Cependant, console.log (parsedArray) me donne le tableau suivant avec une longueur de 13 (Notez le zéro de fuite):
[169.7, 161.84, 162.16, 176.06, 169.72, 170.77, 172.74, 175.73, 0, 0, 0, 0, 0]
Toute réflexion sur la façon dont je peux améliorer cette fonction et pourquoi il serait ajouter un zéro, malgré tous les journaux montrant 12 valeurs?
Essayez 'array.map (parseFloat)' ;) – georg
Vous assignez * et * en poussant? FYI, 'array.map (parseFloat)' est plus propre. EDIT: ... comme thg435 a dit. : D –
Oh, le débutant créant un travail supplémentaire pour lui-même. Merci pour l'astuce array.map (parseFloat). Fonctionne magnifiquement. – thefreeline