[英]Javascript Array Integer Array Format
我有一個項目,我需要遍歷浮點數數組。 該項目的目的是將每個浮點數格式化為此特定格式“ .XXX”,其中X是數字。 如果數字以0開頭,則應將其省略。 例如: 0.2867
應該被格式化為.286
或者如果您有一個像1.2
這樣的數字,那么它應該被格式化為1.200
。 如果數組中的元素不是數字,例如說“-”,則應將其格式化為.000
。
以下是到目前為止我對該項目的代碼,但是我被困住了:
$( document ).ready(function() {
var statsArray = [0.2867, 0.833, 1.576, 0.19, 0.688, 0.22, 0.572, .167, 0.643, 0.921, "-", "-", 0.222, 1.466789, 0.1, 0.714, 1.115];
function formatter()
{
var numElements = statsArray.length;
for (var m=0; m <= numElements; m++)
{
var arrayElement = statsArray[m];
console.log ("original element is " + arrayElement);
arrayElement = parseInt(arrayElement, 10);
console.log ("after parseInt element is " + arrayElement);
arrayElement = arrayElement.toPrecision(3);
console.log ("after toPrecision element is " + arrayElement);
}
}
formatter();
});
任何關於下一步或我所缺少的建議都將不勝感激! 謝謝!
嘗試這個:
var statsArray = [12.2,0.2867, 0.833, 1.576, 0.19, 0.688, 0.22, 0.572, .167, 0.643, 0.921, "-", "-", 0.222, 1.466789, 0.1, 0.714, 1.115];
statsArray = statsArray.map(function(number){
number = Number(number).toFixed(3);
if(number === 'NaN') return '.000';
return number[0] === '0'? number.slice(1) : number
});
console.log(statsArray);
有效的Codepen: http ://codepen.io/gpincheiraa/pen/oLjPvX
您可以使用isNaN
來檢查"-"
; 刪除parseInt
和=
在<=
運算符處; 創建一個將值推入的數組,從formatter()
返回數組。
編輯,更新
也如@JonathanLonowski所建議,嘗試將.toFixed()
替換為.toPrecision()
以返回預期結果。
var statsArray = [0.2867, 0.833, 1.576, 0.19, 0.688, 0.22, 0.572, .167, 0.643, 0.921, "-", "-", 0.222, 1.466789, 0.1, 0.714, 1.115]; function formatter(arr) { for (var m = 0, res = []; m < arr.length; m++) { var arrayElement = statsArray[m]; console.log("original element is " + arrayElement); if (!isNaN(arrayElement)) { res.push(arrayElement.toFixed(3)) } else { if (arrayElement === "-") { res.push(".000") } } } return res } var result = formatter(statsArray); console.log(result)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.