前端常见的字符串操作面试题

478 阅读2分钟

前端常见的字符串操作面试题 一、字符串去重 var str = "ahahggagsssjjj";

function removeRepeat(msg){

var res = []; 

var arr = msg.split(""); 

for(var i=0;i<arr.length;i++){ 

    if(res.indexOf(arr[i])==-1){ 

        res.push(arr[i]); 

    } 

} 

return res.join(""); 

}

removeRepeat(str); // 返回值为: "ahgsj"

二、判断字符串中字符出现的次数 /*

思路:

1.先实现字符串去重,并且以数组的形式返回

2.然后对去重后的数组用for循环操作,分别与原始数组中各个值进行比较,

    如果相等则count++,循环结束将count保存在sum数组中,然后将count重置为0 

3.这样一来去重后的数组中的元素在原数组中出现的次数与sum数组中的元素是一一对应的 

*/

var str = "abccacbbdeaedcd";

var sum = [];

var res = [];

var count = 0;

var arr = str.split("");

for(var i=0;i<arr.length;i++){

if(res.indexOf(arr[i])==-1){ 

    res.push(arr[i]); 

} 

}

for(var i=0;i<res.length;i++){

for(var j=0;j<arr.length;j++){ 

    if(arr[j]==res[i]){ 

        count++; 

    } 

} 

sum.push(count); 

count = 0; 

}

console.log(res); //返回值为:["a", "b", "c", "d", "e"] 去重后的数组

for(var i=0;i<res.length;i++){

var str=(sum[i]%2==0)?"偶数":"奇数"; 

console.log(res[i]+"出现了"+sum[i]+"次"); 

console.log(res[i]+"出现了"+str+"次"); 

}

三、字符串反向输出 (1).最笨、最原始的方法(利用字符串和数组函数交替转换输出) var str = 'abcdefg';

var str1 = str.split(""); //将字符串分割,并以数组形式返回

var str2 = str1.reverse(); //利用数组函数reverse()将数组中的元素反向输出

var str3 = str2.toString(); //将数组类型转换为字符串类型

var str4 = str3.replace(/,/g,""); //利用字符串函数replace()去掉','字符

console.log(str4); //返回值为:gfedcba

/*上述方法可简写为: */

var str = 'abcdefg';

var str1 = str.split("").reverse().toString().replace(/,/g,"");

console.log(str1); //返回值为:gfedcba

(2).利用字符串函数组合实现 var str = 'abcdefg';

var str1 = str.split('').reverse().join('');

console.log(str1); //返回值为:gfedcba

(3).利用for循环方式 var str = 'abcdefg';

var i = str.length;

var i = i-1;

for (var str = i; str >=0; str--) {

document.write(str.charAt(str));

}

//返回值为:gfedcba

如有错误之处欢迎留言!