2.前端常见面试编程题整理

来源:互联网 发布:詹姆斯季后赛数据排名 编辑:程序博客网 时间:2024/05/18 03:11

1.输出字符串中出现次数最多的

var str='fdadffddfdffj';
 var obj={};
 for(var i=0;i<str.length;i++){
    var cha=str.charAt(i);
if(!obj.hasOwnProperty(cha)){
  obj[cha]=0;
}
var num=obj[cha];
obj[cha]=num+1;
 }
 var resultChar=0;
 var resultNum=0;
 for(var p in obj){
     if(obj[p]>resultNum){
   resultNum=obj[p];
resultChar=p;
}
 }
 console.log(resultChar+":"+resultNum);

2.驼峰式转换

var str="border-left-right";
 var arr=str.split('-');
 var result="";
 for(i=0;i<arr.length;i++){
   if(i==0){
      result+=arr[0];
   }else{
      var temp=arr[i];
 var firstChar=temp.substr(0,1);
 firstChar=firstChar.toUpperCase();
 result+=firstChar+temp.substr(1);
   }
 }
 console.log(result);

3.正则表达式

求单个字符次数最多的那个字符名称及次数

var str="sjdkfljsdflkfsfdkffffsdklf";
 var new_str=str.split("").sort().join("");
 var num=-1;
 var char=null;
 var reg=/(\w)\1+/g;//当连续的字符相同时,\1会让正则表达式不断的去截取,直到遇到不同的字符,然后把相同的字符串传递给替换函数的第一个参数,把单个字符值传给第二个参数
 new_str.replace(reg,function(p1,p2){
    if(p1.length>num){
  num=p1.length;
  char=p2;
}
 });
 console.log(new_str);
 console.log(char+":"+num);

将字符串grandFatherMomr转换为grand_father_mom

var result="grandFatherMom".replace(/[A-Z]/g,function($1){
    return "_"+$1.toLowerCase();
 });
 console.log(result);

将字符串grand_father转换为grandFather

var result1="grand_father".replace(/_[a-z]/g,function($1){
    //console.log(arguments);
return $1.substring(1,2).toUpperCase();
 });
 console.log(result1)

4.求两个数组交集

var fn=function(a,b){
    a=a.sort();
b=b.sort();
var start=0;
    result=[];
for(var i=0;i<a.length;i++){
 var temp=a[i];
 for(var j=start;j<b.length;j++){
     if(temp==b[j]){
    result.push(b[j]);
 }else if(temp>b[j]){
   continue;
 }else if(temp<b[j]){
    start=j;
break;
 }
 }
}
console.log(result);
 }
 fn([1,2,3,4,5],[4,2,8,9,0]);

原创粉丝点击