资讯专栏INFORMATION COLUMN

数值每三位加逗号

gnehc / 1543人阅读

摘要:编写一个函数实现如下功能方法一循环使用获取每组数字。方法二在头部补全,然后使用正则匹配,最后去除开头的零。方法三传化为数组进行操作,然后再拼接。

编写一个 toThousands 函数实现如下功能

toThousands(23456.89) // "23,456.89"
方法一

循环使用 slice(-3)获取每组数字。

function toThousands(number) {
  var arr = String(number).split(".");
  var num = arr[0], result = "";
  while (num.length > 3) {
    result = "," + num.slice(-3) + result;
    num = num.slice(0, num.length -3);
  }
  if (num.length > 0) result = num + result;
  return arr[1] ? result + "." + arr[1] : result
}
方法二

在头部补全0,然后使用正则匹配,最后去除开头的零。padStart是ES6的方法,你也可以使用其他方法代替。

function toThousands(number) {
  var arr = String(number).split(".");
  var num = arr[0];
  var len = Math.ceil(num.length / 3) * 3;
  var result = num.padStart(len, "0").match(/d{3}/g).join(",").replace(/^0+/, "");  
  return arr[1] ? result + "." + arr[1] : result;
}
方法三

传化为数组进行操作,然后再拼接。

function toThousands(number) {
  var arr = String(number).split(".");
  var result = [], counter = 0;
  var num = arr[0].split("");
  for (var i = num.length - 1; i >= 0; i--) {
    counter++;
    result.unshift(num[i]);
    if (!(counter % 3) && i != 0) result.unshift(",");
  }
  return arr[1] ? result.join("") + "." + arr[1] : result.join("");
}
方法四

使用 charAt 获取数字。

function toThousands(number) {
  var arr = String(number).split(".");
  var num = arr[0], result = "", counter = 0;
  for (var i = num.length - 1; i >= 0; i--) {
    counter++;
    result = num.charAt(i) + result;
    if (!(counter % 3) && i != 0) result = "," + result;
  }
  return arr[1] ? result + "." + arr[1] : result;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93711.html

相关文章

  • vue 项目总结一组件开发的配置和例子

    摘要:入口文件,影响全局,作用是引入全局使用的库公共的样式和方法设置路由等。项目里总会有一些复用的组件,例如弹出框发送手机验证码图片上传等,将它们作为通用组件,避免重复工作结构如下可以根据功能模块建立文件夹,放置本功能会用到的通用组件。 上一篇文章 https://segmentfault.com/a/11... 介绍了项目里文件夹的分类和作用,这次主要说明 src 文件夹里具体的文件分类和...

    melody_lql 评论0 收藏0
  • vue 项目总结一组件开发的配置和例子

    摘要:入口文件,影响全局,作用是引入全局使用的库公共的样式和方法设置路由等。项目里总会有一些复用的组件,例如弹出框发送手机验证码图片上传等,将它们作为通用组件,避免重复工作结构如下可以根据功能模块建立文件夹,放置本功能会用到的通用组件。 上一篇文章 https://segmentfault.com/a/11... 介绍了项目里文件夹的分类和作用,这次主要说明 src 文件夹里具体的文件分类和...

    isaced 评论0 收藏0
  • 一个数字用逗号分隔的方法

    摘要:将数字分段显示,每三位用逗号隔开判断是否是整数并获取整数部分将整数部分逢三一断预定义小数部分表示数据有小数位拿到小数部分补执行方法 /** * 将数字分段显示,每三位用逗号隔开 * @param {Number} value */ formatNumber (value) { if (!value) return 0 let intPart =...

    tomlingtm 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<