JavaScript 空位补零实现代码


Posted in Javascript onFebruary 26, 2010

实现一:

/* 平淡无奇法 */ 
function pad(num, n) { 
var i = (num + "").length; 
while(i++ < n) num = "0" + num; 
return num; 
}

上面的代码太平淡无奇,体现不了我的真实水平。于是有了实现二:
/* 神奇递归法 */ 
function pad2(num, n) { 
if ((num + "").length >= n) return num; 
return pad2("0" + num, n); 
}

神奇的递归,每次都能让 mm 投来赞美和钦慕的眼神~~
然而,高手过招,讲究的是一招致命。上面的代码居然用了两行,简直是侮辱。琢磨一下,一行神奇的代码涌上心头:
/* 奇淫技巧法 */ 
function pad3(num, n) { 
return (Array(n).join(0) + num).slice(-n); 
}

这次 mm 投来的是膜拜的眼神了,hiahia~~~
=== 我不是空间分隔线,我是很长很长的时间分割线。经历了 n 年后 ===
一日,秋高气爽,心旷神怡。与友闲坐菩提树下,把酒下棋。
友曰:BP 君,自从你走后,可害苦了我。你留下的那些神奇代码,害我头发提前掉了 3 年。
我大惊:此话怎讲?
友一脸不堪回首:记得那个神奇的 pad3 函数不?在你走后 1 年内,公司的业务激增。pad3 有个 bug, 某些情况下会截取掉数字的前几位。比如 pad3(123456, 5), 返回的是 23456. 这 bug 被黑客发现了,导致了好几起大规模的钓鱼事件,公司损失上百万。当时老总勒令我一天内找出 bug 所在,老兄你的神奇代码却害得我花了 3 天才定位到。除了 pad3, 还有一个神奇的 xxoo9 函数,当时……
老友还在絮絮叨叨,我听完第一段时,已黯然失魂。低头琢磨 pad3 的写法,的确存在截取 bug, 这用在交易系统,狂汗……
与老友话别后,迫不及待地从 GoogleFace 的一朵云中取回当年的 pad3 和 xxoo9 等代码,一测试,大惊:
tricky_code.html
pad3 不仅存在截取字符 bug, 居然还有性能问题……
一番激烈的思想斗争。
迷迷茫茫中,遥见唐僧笑侃而至:
世人皆笑我罗嗦,我道世人看不透。
欲解此惑看来时,质朴简单是真知。
唐僧抛下一卷轴,大笑而去:
/* 质朴长存法 */ 
function pad(num, n) { 
var len = num.toString().length; 
while(len < n) { 
num = "0" + num; 
len++; 
} 
return num; 
}

观之,吾亦大笑,随唐僧取经去也……
注:一直想写这样一篇文章。今天闲逛 51js, 偶然看到一贴:位数不够前面补 0 的问题,于是立刻就有了这篇文章的构思。对于补零,我的奇淫反应是return Array(n - ("" + num).length + 1).join(0) + num;(也有 bug),和果果的类似,但考虑到震撼性(果果的 bug 更隐蔽),最后采用了果果的代码来举例。无论如何,感谢果果。
Javascript 相关文章推荐
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
Apr 25 Javascript
vue-cli创建的项目,配置多页面的实现方法
Mar 15 Javascript
JavaScript如何实现元素全排列实例代码
May 14 Javascript
vue+element tabs选项卡分页效果
Jun 29 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 Javascript
javascript replace()正则替换实现代码
Feb 26 #Javascript
javascript function调用时的参数检测常用办法
Feb 26 #Javascript
jquery1.4 教程二 ajax方法的改进
Feb 25 #Javascript
jquery 1.4.2发布!主要是性能与API
Feb 25 #Javascript
jQuery 方法大全方便学习参考
Feb 25 #Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 #Javascript
javascript 命名规则 变量命名规则
Feb 25 #Javascript
You might like
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
前端实现打印图像功能
2019/08/27 HTML / CSS
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
智能电子应届生求职信
2013/11/10 职场文书
大学生如何写自荐信
2014/01/08 职场文书
高中军训感言1000字
2014/03/01 职场文书
事业单位鉴定材料
2014/05/25 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python