为了账号安全,请及时绑定邮箱和手机立即绑定

优化这个用于统计字母出现次数的函数,看看你优化后的函数需要耗时几毫秒?

优化这个用于统计字母出现次数的函数,看看你优化后的函数需要耗时几毫秒?

杨魅力 2019-05-23 11:23:07
某前端群里出了一个题目:封装一个charStat函数用于统计给定网址中html源代码中a-z字母(不区分大小写)出现的次数,函数返回Promise并resolve这样一个对象:key为a-z(不可乱序)、value为对应字母出现次数。为了排除掉网络请求耗时影响,所以我们只优化console.time('ms')与console.timeEnd('ms')之间的代码,保证结果正确的前提下,通过比较输出结果中的ms:后的数值大小来评价优化结果。执行多次,平均输出大于50ms为E(不及格),在50ms内评分为D等级方案,40ms内为C,30ms内为B,20ms内为A,10ms左右算终极方案了以下是我的代码,通过String.prototype.replace实现,虽然比较精简但耗时较长(98.593ms),并且不及格!!!constfetch=require('isomorphic-fetch')functioncharStat(url){returnfetch(url).then(response=>response.text()).then(html=>{console.time('ms')//声明一个对象_c,并初始化key为a-z,value均为0let_c={},_range=['a'.charCodeAt(),'z'.charCodeAt()]for(leti=_range[0];i_c[i.toLowerCase()]++)console.timeEnd('ms')return_c})}charStat('http://www.sina.com.cn/').then(result=>console.log(result))输出:ms:98.593ms{a:26200,b:6756,c:14579,d:10298,e:19402,f:6689,g:6065,h:9945,i:19735,j:1633,k:5128,l:16053,m:8322,n:17747,o:12169,p:8371,q:524,r:13153,s:18301,t:22605,u:5883,v:4111,w:4042,x:2013,y:3381,z:575}
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信