「javaScript-每三位插入一个逗号实现方式」

 一道火了很久的面试题,

//将以下数字从小数点前开始每三位数加一个逗号var num = 1234567890.12345;复制代码

相信大家写了这么久的前端代码,不论是培训也好,面试也好,这种题出现的频率挺高的,

网上方法很多,但是我要给大家介绍2中简单易懂的方式

1.toLocalString()

let newNum = num.toLocalString(); /*    *  => 1,234,567,890.12345* 最快的作弊方式
*/复制代码

下面来看下这个方法吧,MDN的解释是,


/*  *  toLocaleString() 返回一个字符串表示数组中的元素。*  数组中的元素将使用各自的 toLocaleString 方法转成字符串,   *  这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。*/复制代码

简直是作弊的无法无天!

2.下面来看下本人的写的low方法

function changeNum(num) {if(typeof num !== 'number') {throw new Error('请传入数字');return false;}// 切割小数点num = num + '';let index = 0,i = 0 ;for (;i < num.length ; i++) {if(num[i] === '.') {index = i;}}// 开始let start = num.slice(0,index) ;// 结束let end = num.slice(index,-1) ;let reson = [];//  console.log(start.length)let firstStart = '',j = start.length;// 判断是否为三位数的倍数// 第一位let newStart = start.slice(0,j % 3)  ;console.log(newStart,start)start = start.replace(newStart,'');// Math.floor(j % 3) === j % 3 ?for(; j >= 0 ;j--){// console.log(j)// 遍历出符合的项if( j % 3 === 0  && j !== start.length) {console.log(j,'123')reson.push(j)}}// 存储被切割的字符串let sliceStr = [];// 反转数组reson = reson.reverse();// 遍历符合项切割数组for(let k = 0 ; k < reson.length ; k++) {console.log(reson[k],reson[k+1])sliceStr.push(start.slice(reson[k],reson[k+1]))}// 返回新的数组let newNum  = '';if(newStart) {newNum = newStart + ',' + sliceStr.join(',') + end;}else {newNum = sliceStr.join(',') + end;}return newNum}let str  = changeNum(num);复制代码

这个代码量的确有点可怕.... 来看下具体思路吧

/*1 => 首先将数字类型转换成字符串,用indexof来索引是否存在小数点2 => 切割start开始字符串和end结束拥有小数点后的字符串3 => 对start进行取模,将余数用newStart存储起来,并且在start字符串中删除对应拥有的。4 => 遍历得到哪些项是符合的5 => 数组反转(多余操作...其实j++就可以了...)对字符串进行符合项切割6 => 判断是否存在余数 返回不同的值*/复制代码

写完,哇的一下就哭出来了... 


以后还是要多深入了解一下js啊,知道的太浅了...


每天和大家一起进步一点点





转载于:https://juejin.im/post/5cb754206fb9a06876103662

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络df例题,计算机网络期末试题北交.doc

计算机网络期末试题北交北京交通大学 2007-2008学年 第学期考试试题课程名称&#xff1a;计算机通信与网络技术 出题人&#xff1a;网络课程组题 号一二三五总分得 分签 字选择题(每题分&#xff0c;共0分)PING命令使用协议的报文A、TCP ?? ?B、UDP ??????????C、…

java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现

在Spring Cloud封装的Feign中并不直接支持传文件&#xff0c;但可以通过引入Feign的扩展包来实现&#xff0c;本文就来具体说说如何实现。需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六 服务提供方&#xff08;接收文件&#…

2021计算机三级网络技术教程,全国计算机等级考试三级教程——网络技术(2021年版)...

前辅文第一单元 网络规划与设计第1章 网络系统结构与设计的基本原则1.1 基础知识1.2 实训任务习题第2章 中小型网络系统总体规划与设计方法2.1 基础知识2.2 实训任务习题第3章 IP地址规划设计技术3.1 基础知识3.2 实训任务习题第4章 路由设计基础4.1 基础知识4.2 实训任务习题第…

subline Text3 插件安装

--没有解决&#xff0c;换了vscode 安装Package Control 这是必须的步骤&#xff0c;安装任何插件之前需要安装这个 自动安装的方法最方便&#xff0c;只需要在控制台&#xff08;不是win的控制台&#xff0c;而是subline 的&#xff09;里粘贴一段代码就好&#xff0c;但是由…

大学计算机基础书本里的毕业论文源稿,计算机基础毕业论文范文

计算机基础毕业论文范文导语&#xff1a;关于大学计算机基础的教学&#xff0c;需要不断探索与实践&#xff0c;实现更好的教学。下面是小编带来的计算机基础毕业论文&#xff0c;欢迎阅读与参考。论文&#xff1a;大学计算机基础教学的探索与实践摘要&#xff1a;大学计算机基…

p批处理替换目录下文本中的字符串

echo offrem 进入批处理文件所在的路径 cd C:\Users\zxh\Desktop\123echo ***** Replace "123" as "abc" ***** rem 定义要替换的新旧字符串 set strOld123 set strNewabcrem 定义变量修改本地化延期 setlocal enabledelayedexpansionrem 循环取出要处理的…

计算机技术基础 VB 答案,《计算机技术基础(VB)》武汉理工大学20春作业一

计算机技术基础(VB)_作业一1.[判断题] 写在一行上的多条语句&#xff0c;应以逗号作为分隔符。奥鹏作业答案可以联系QQ 761296021A.正确B.错误正确答案:——B——2.[判断题] 滚动条的最小值、最大值、最小变动值、最大变动值属性均可自行设计。A.正确B.错误正确答案:——A——3…

公务员计算机考试题库,公务员考试题库

2019年上半年&#xff0c;我国服务进出口总额达到26124.6亿元&#xff0c;同比增长2.6%。其中&#xff0c;出口总额9333.7亿元&#xff0c;同比增长9.0%&#xff1b;进口总额16790.8亿元&#xff0c;同比下降0.6%。服务进出口总额占对外贸易总额的比重达到15.1%&#xff0c;比2…

Spring MVC 实现Excel的导入导出功能(2:Excel的导入优化和Excel的导出)

Excel的导入V2优化版 有些时候文件上传这一步骤由前端来处理&#xff0c;只将上传后的 URL 传输给后端&#xff08;可以参考上一文中的图片上传功能&#xff09;&#xff0c;也就是导入请求中并不会直接处理 MultipartFile 对象&#xff0c;而是通过文件 URL 将其下载&#xff…

计算机系统应用属于ei,2018年度中心成员发表论文清单(SCI、EI收录)

序号论文名称作者发表时间发表刊物名及ISSN号论文类别(SCI(请写明几区)、EI、AB类刊物、CSCD)1Power Allocation Study for Non-Orthogonal Multiple Access Networks With Multicast-Unicast TransmissionZheng Yang , Member, IEEE, Jamal Ahmed Hussein , Peng Xu , Member,…

ts基础总结

ts有什么用 类型检查, 拥抱es6&#xff0c;支持部分的esNext草案&#xff0c;直接编译到原生js、引入新的语法糖 为什么用ts TypeScript的设计目的应该是解决JavaScript的“痛点”&#xff1a;弱类型和没有命名空间&#xff0c;导致很难模块化&#xff0c;不适合开发大型程序。…

CentOS7启用SELinux和Firewall修改ssh端口号

基本信息 CentOS :CentOS Linux release 7.6.1810 (Core)SELinux:enforcedFirewall:enforcing生成ssh密钥对 生成密钥对 ssh-keygen -t rsa -b 2048 #默认存放的位置是/home/user/.ssh&#xff0c;使用的是公钥id_rsa.pub从服务器中将私钥复制到本机或者使用本地生成的密钥对&a…

华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...

随着消费者对健康生活的日益关注&#xff0c;随之而来的是智能可穿戴设备的蓬勃发展。一个手环&#xff0c;一个智能手表&#xff0c;都可以为消费者提供诸如心率&#xff0c;步数相关的数据统计。而更进阶的设备&#xff0c;则能为用户提供系统的运动解决方案以及监控人体健康…

Flutter 使用动画播放一组图片

请支持原文&#xff1a;tryenough.com/images-anim… 效果如下图&#xff1a; 代码 import package:flutter/material.dart; import package:sprintf/sprintf.dart; //这个是一个拼接字符串的flutter库&#xff0c;主要是为了使用方便&#xff0c;你可以选择不使用&#xff0c…

软件测试都有哪些证书,软件测试都有哪些证书呀?有用吗?

OYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学习论坛 www.oywp.netOYWP学…

超低频测试信号产生电路软件流程图,一种0_20Hz超低频信号发生器的设计与实现...

。。第22卷第4期增刊           仪 器 仪 表 学 报             2001年8月一种0&#xff5e;20Hz超低频信号发生器的设计与实现马彦恒 郭 利 于久恩 (军械工程学院 石家庄 050003)摘要 本文介绍了一种采用了主—从式双CPU结构,频率和幅度都…

datastage 使用小结

转载于:https://www.cnblogs.com/Guhan-xue/p/10758663.html

Teams 的逻辑架构与语音解决方案 - Official Posters Download

意外收获了前几天&#xff08;0420&#xff09;刚刚更新出来的Teams架构海报&#xff0c;分享给大家下载 Microsoft Teams IT architecture and telephony solutions postershttps://docs.microsoft.com/en-us/microsoftteams/teams-architecture-solutions-posters 接下来跟大…

ug不能自动启动服务器,没有足够的权限启动系统服务解决方法

没有足够的权限启动系统服务解决方法UG的安装要注意两个问题&#xff0c;一个是安装路径不能有中文(包括ug文件存储路径也不能含有中文),二是许可证的安装&#xff0c;win7装ug问题多数出在“许可证”的安装过程&#xff0c;你的那个报警是&#xff1a;就是说你把UGII_TMP_DIR设…

css直接子元素怎么用,CSS 子元素选择器使用实例

与后代选择器相比&#xff0c;子元素选择器只能选择作为某元素子元素的元素。子元素选择器使用大于号">"做为连接符。如果您不希望选择任意的后代元素&#xff0c;而是希望缩小范围&#xff0c;只选择某个元素的子元素&#xff0c;请使用子元素选择器子元素选择器…