背景
购物车项目中常见需求,总金额展示时为了方便需要增加千分位逗号符,方便查看。
思路
首先金额是float/int类型,需要转成字符串,考虑用tostring() 或者toFixed()。
其次判断总金额中是否有小数点,如果有则只需处理小数点索引之前的字符串。
然后遍历字符串,如果其倒序序号能整除3则在前加逗号,将每一个字符存入数组中。
最后用join方法将金额数组转成字符串。
详见代码
注:以下代码含部分商品计算总价过程,如只需处理金额则直接从 let res = tp.toFixed(2)开始,传入参数总金额 tp 即可。
totalprice() {
var tp = 0;
this.clist.forEach((val) => {
tp += val.price * val.count;
});
var res = tp.toFixed(2)
var chararr = []
var rlength = res.indexOf('.')>0 ? res.indexOf('.') : res.length
for (let i = 0; i < res.length; i++) {
if (rlength-i > 0 & (rlength - i) % 3 == 0 & (i != 0)){
chararr.push(',')
};
chararr.push(res.charAt(i));
}
console.log(chararr.join(''))
return chararr.join('')
}