我有一個字符串數組,我需要將其轉換爲小數數組。字符串數組是這樣的:爲什麼JavaScript parseFloat在for循環中附加額外的值?
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"]
我創建了一個簡短的函數解析該是這樣的每個數組元素:
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;
}
記錄array.length給我12的值登錄for循環還會返回12個單獨的值。然而,執行console.log(parsedArray)給我用13的長度以下的陣列(注意尾隨零):
[169.7, 161.84, 162.16, 176.06, 169.72, 170.77, 172.74, 175.73, 0, 0, 0, 0, 0]
我如何能改善這一功能,任何想法爲什麼它會追加一個零,儘管所有日誌顯示12個值?
嘗試'array.map(parseFloat)' ;) – georg
你正在分配*和*推送?僅供參考,'array.map(parseFloat)'更乾淨。編輯:...像thg435說。 :D –
哦,新手爲自己創造額外的工作。感謝array.map(parseFloat)提示。精美的作品。 – thefreeline