编程语言
首页 > 编程语言> > javascript – 基于最大结果零后删除逗号后的零

javascript – 基于最大结果零后删除逗号后的零

作者:互联网

我有一个带有网格的页面,用户的号码会被保存.它有以下模式 – 每个数字以逗号后的3位数结尾.例如,当用户输入时,它看起来不太好看

123,450
123,670
123,890

逗号之后只有2个数字要好得多,因为最后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));
});

标签:javascript,loops,nested-loops,string
来源: https://codeday.me/bug/20190607/1195268.html