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]);
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]);
相关文章推荐
- 常见的C语言面试编程题(三)
- 软件工程师面试编程常见函数实现
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 常见的C语言面试编程题(一)
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 软件工程师面试编程常见函数实现
- 常见面试思想方法整理
- 【IT笔试面试题整理】笔试和面试中常见的智力题
- [IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 【IT笔试面试题整理】笔试和面试中常见的智力题
- 常见的C语言面试编程题(一)
- 收集整理的大公司面试中与编程相关题目
- 面试常见基础题整理
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结