算法练习02 实现数字千分位分割

题目(2018-11-18)

输入一个数字,将数字按照用逗号分隔,例如输入1234.56,结果是1,234.56

实现

关键点是,这种分隔方法是从右至左的分隔,用普通的slice方法是从左至右的分隔,例如:

12345正确的结果是12, 345,而用普通的slice方法结果是123, 45

如果图简单,可以直接使用内置的方法:

// 内置的方法
Number.toLocalString();

const a = 12345.11;
console.log(a.toLocalString()); // 123,45.11

如果是为了锻炼算法,则需要手写:

/**
  * 输入数组,返回按照位数分割的数组
  * @param number 传入的数字
  * @param range 按照此位数将数字分割
  * @returns {string} 返回用逗号分隔的字符串
  */
  
const splitStr = (number, range = 3) => {
  let str = number.toString();
  const[left, right] = str.split('.');
  const strArr = left.split('').reverse();
  let result = [];
  for (let i = 0; i < strArr.length; i += range) {
    result.push(strArr.slice(i, i + range).reverse().join(''))
  }
  return `${result.reverse().join(',')}.${right}`
};

const a = 12345.11;
console.log(splitStr(a)); // 123,45.11
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,399评论 19 139
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,277评论 0 10
  • 有时候,偶然间的抬头会让你诧异满怀地发现夜空,遇见月亮,邂逅星辰,莫名欣喜,没来由地喜爱。于是想讲故事,让它们聆听...
    小小七阅读 489评论 1 3
  • Useful commands about tab: :tabnew:tabedit:tabnext:tabpre...
    Programming阅读 274评论 0 0
  • Part1 陈熠,万年面瘫脸外加省话一哥,能用是或嗯回答的绝不多说一个字。 在陈熠二十七年的人生里,谈过两次自认为...
    苏黎_阅读 919评论 10 10

友情链接更多精彩内容