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

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

一、字符串去重

var str = "ahahggagsssjjj";

function removeRepeat(msg){ 

    var res = []; 

    var arr = msg.split(""); 

    for(var i=0;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

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

        res.push(arr[i]); 

    } 

for(var i=0;i

    for(var j=0;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

    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



如有错误之处欢迎留言!

你可能感兴趣的:(前端常见的字符串操作面试题)