您的位置:首页 > 职场人生

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

2017-07-08 21:09 190 查看
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]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐