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