js常见面试题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js常见面试题相关的知识,希望对你有一定的参考价值。
1、大小写转化,将字符串转化成驼峰的方法
例:border-bottom-color转化为:borderBottomColor
var str="border-bottom-color";
方法一:字符串处理方式
function change(str){
var arr=str.split(‘-‘);//[border,bottom,color]
for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
}
return arr.join(‘‘);
}
方法二:正则表达式
function change(str){
var reg=/-(\w)/g;
return str.replace(reg,function($0,$1){
return $1.toUpperCase();
});
}
2、查找字符串中出现最多的字符和个数
方法一:字符串处理方式
var str="aasgdfsssaaaaaa338"
function select(str){
var obj={};
var num=0;
var value="";
for(var i=0;i<str.length;i++){
if(!obj[str[i]]){
obj[str[i]]=[];
}
obj[str[i]].push(str[i]);
}
for(var attr in obj){
if(num<attr.length){
num=attr.length;
value=obj[attr[0]];
}
}
return "最多的字符是"+value+"个数为"+num;
}
方法二:正则表达式
function select(str){
var arr=split(‘‘);
arr.sort();
var reg=/(\w)\1+/g;
var num=0;
var value=0;
str.replace(reg,function($0,$1){
if(num<$0.length){
num=$0.length;
value=$1;
}
});
return "最多的字符是"+value+"个数为"+num;
}
3、给字符串加千分符
var str="1263544636322";
方法一:
function sep(str){
var n=str.length%3;
var pre=‘‘;
var arr=[];
if(n!=0){
pre=str.substring(0,n);
arr.push(prev);
}
str=str.substring(n);
var temp=‘‘;
var now=0;
for(var i=0;i<str.length;i++){
now++;
temp+=str[i];
if(now==3){
arr.push(temp);
temp=‘‘;
now=0;
}
}
return arr.join(‘,‘);
}
方法二:正则方法
function sep(str){
var re=/(?=(?!\b)(\d{3})+$)/g;
return str.replace(re,‘,‘);
}
4、返回一个只包含数字类型的一个数组
var str="js123asgs78ajajajd653" --->[123,78,653]
方法一:
function findNum1(str) {
var arr=[];
var tmp=‘‘;
for(var i=0;i<str.length;i++){
if(str.charAt(i)<=‘9‘&&str.charAt(i)>=‘0‘){
tmp+=str.charAt(i);
}else {
if(tmp){
arr.push(tmp);
tmp=‘‘;
}
}
}
if(tmp){
arr.push(tmp);
}
return arr;
}
方法二:正则表达式
function findNum2() {
return str.match(/(\d+)/g);
}
以上是关于js常见面试题的主要内容,如果未能解决你的问题,请参考以下文章