- 时间:2021-06-15 08:01 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:JavaScript 特有方法计算二进制中1的个数 split方法
代码如下:
[url=http://www.1sucai.cn/article/23421.htm]如需引入外部Js需刷新才能执行[/url]]
[b]发现原来的代码中有两个错误。
[/b]
一是在IE下,字符串不能使用数组下标访问指定位置的值,只能采用charAt(index)的方法。
二是在Chrome和Opera下,split(\0*\)的方式计算出的1的个数在有些情况下会多1。
比如:12的二进制值为1100,使用split(\0*\)的方式生成的数组为[1,1,]。也就是说,当二进制值不以1结尾时,在最后都会生成一个空数组项(在IE和Firefox中没有这个问题)。
思考后发现,其实并不需要使用正则的方式来计算1的个数,只要把1当做split方法的参数,把1作为分隔符,分出的数组的长度应该是1的个数加1。
[url=http://www.1sucai.cn/article/23421.htm]如需引入外部Js需刷新才能执行[/url]]