我有一个带有网格的页面,其中保存了用户号码。它具有以下模式-每个数字以逗号后的3位数字结尾。看起来不太好,例如当用户输入为

123,450
123,670
123,890

最好在逗号后只包含两个数字,因为最后的0绝对毫无意义且多余。

仅当数组中的至少一个元素不以0结尾时,它仍应具有3位数字的方式

例如:
123,455
123,450
123,560

在这种情况下,数组的第一个元素的最后一位不等于0,因此所有元素都应具有3位。相同的故事,带有2个或1个零

零是多余的:
123,30
123,40
123,50

零是必需的:
123,35
123,40
123,50

问题是如何以编程方式实现它?我开始是这样的:
var zeros2Remove = 0;
numInArray.forEach(function(item, index, numInArray)
{
    var threeDigitsAfterComma = item.substring(item.indexOf(',') + 1);

    for(var j = 2; j <= 0; j--)
    {
        if(threeDigitsAfterComma[j] == 0)
        {
            zeros2Remove =+ 1;
        }
        else //have no idea what to do..
    }
})

好吧,在我的实现中,我不知道该怎么做,因为我必须遍历每个元素,但是如果至少一个数字的最后一位等于零,则将其中断。为了这样做,我必须中断外循环,但不知道如何,而且我绝对确定我不必...

最佳答案

我认为以下代码正是您想要的代码,请操纵数字并查看更改:

var arr = ["111.3030", "2232.0022", "3.001000", "4","558.0200","55.00003000000"];
var map = arr.map(function(a) {
  if (a % 1 === 0) {
    var res = "1";
  } else {
    var lastNumman = a.toString().split('').pop();
    if (lastNumman == 0) {
      var m = parseFloat(a);
      var res = (m + "").split(".")[1].length;
    } else {
      var m = a.split(".")[1].length;
      var res = m;
    }
  }

  return res;

})
var maxNum = map.reduce(function(a, b) {
  return Math.max(a, b);
});

arr.forEach(function(el) {
  console.log(Number.parseFloat(el).toFixed(maxNum));
});

08-18 16:56