web前端面试常见算法题有哪些
这篇"web前端面试常见算法题有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"web前端面试常见算法题有哪些"文章吧。
1对象转换为数组
varobj={0:'我',1:'的',2:'妈',3:'呀',length:4}//obj格式必须是类似数组的格式(键值是索引,具有length属性)var_slice=[].slice;varobjArr=_slice.call(obj);
2.统计一个字符串出现最多的字母
functioncountMost(str){constobjCount={};
str=str.split('').sort().join('');for(leti=0;i num=lastIndex-i+1; objCount[str[i]]=num; i=lastIndex; }letmaxStr=[], maxValue=1;for(letpinobjCount){if(objCount[p]>maxValue){ maxStr=[]; maxStr.push(p); maxValue=objCount[p]; }elseif(objCount[p]==maxValue){ maxStr.push(p); } }returnmaxStr.length==1?maxStr[0]:maxStr; }console.log(countMost('afjghdfffffraaaasdddddenas')); 3.找出下列正数组的最大差值 constarr=[10,5,11,7,8,9];functiongetMaxProfit(arr){letmax=arr[0], min=arr[0];for(leti=1;i max=Math.max(max,arr[i]); min=Math.min(min,arr[i]); }returnmax-min; }console.log(getMaxProfit(arr)); 4.获取数组中最大或者最小值 functionmaxAndMin(arr){return{max:Math.max.apply(null,arr.join(',').split(',')),min:Math.min.apply(null,arr.join(',').split(',')) } }vararr=[22,0,[3,4,2,55]]; maxAndMin(arr).max;//55maxAndMin(arr).min;//0 5.生成指定长度的随机字母数字字符串 functiongetRandomStr(len){varstr="";for(;str.length } 以上就是关于"web前端面试常见算法题有哪些"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。