我正在尝试创建一个 JS 脚本以使用 ,
分隔符来格式化数字,但逻辑实现中出现了问题。
我在这里更改 arr1
的值。
这是我这次使用的JS代码——
<script>
var arr1 = [1,2,3,4,5,6,7];
arr1.reverse();
var i = 1;
var tempArr = new Array();
for( i; i <= arr1.length ; i++ ) {
if( i%3 == 0 ) {
tempArr[i-1] = arr1[i-1];
tempArr[i] = ',';
i++;
}
else {
tempArr[i-1] = arr1[i-1];
}
}
console.log(tempArr.reverse().join(''));
</script>
预期输出 `` 当前输出错误
1,234 => ,234
12,345 => 1,345
123,456 => ,12,456
1,234,567 => ,23,567
这次我正在学习编码,请告诉我我在代码片段中做错了什么(逻辑部分)。
最佳答案
您完全忘记添加原始数字和逗号:
var arr1 = [1,2,3,4,5,6,7].reverse()
, tempArr = [];
for (var i = 0; ++i <= arr1.length;) {
tempArr[i-1] = arr1[i-1];
if (i % 3 === 0) tempArr[i] = arr1[i++] + ',';
}
console.log(tempArr.reverse().join(''));
更简洁的版本:
function addCommas(str) {
str = (str + '').split('');
for (var i = str.length - 1; (i -= 3) > 0;) str[i] += ',';
return str.join('');
}
关于javascript - JavaScript 中的数字格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16663200/