Javascript数组整数数组格式

时间:2016-06-08 02:54:48

标签: javascript arrays integer parseint

我有一个项目,我需要循环遍历一系列浮点数。此项目的目标是将每个浮点数格式化为此特定格式“.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();

});

任何有关下一步或我缺少的建议都将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

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);

工作代码:http://codepen.io/gpincheiraa/pen/oLjPvX

答案 1 :(得分:0)

您可以使用isNaN来检查"-";移除parseInt运营商处的=<=;创建一个数组来推送值,从formatter()返回数组。

修改,更新

正如@JonathanLonowski所建议的那样,尝试用.toFixed()替换.toPrecision()来返回预期结果。

&#13;
&#13;
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)
&#13;
&#13;
&#13;