继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JavaScript 字符串练习题之实现

前端GoGoGo
关注TA
已关注
手记 59
粉丝 116
获赞 6940

JavaScript 字符串练习题见这里

题 1:首字母改大写

function firstLetterToUpperCase(str) {
    var res;
    if (typeof str === 'string') {
        res = str.charAt(0).toUpperCase() + str.substr(1);
    } else {
        res = str;
    }
    return res;
}

题 2:去字符串头尾空格

function trim(str) {
    var res;
    if (typeof str === 'string') {
        res = str.replace(/^\s+/g, '')
            .replace(/\s+$/g, '');
    } else {
        res = str;
    }
    return res;
}

题 3:将字符串中 _ 后面的小写字母变大写,并且删除 _

function toCamelStyle(str) {
    var res;
    if (typeof str === 'string') {
        var isFisrstLetterUnderscore = str.charAt(0) === '_';
        var wordArr;
        if(isFisrstLetterUnderscore){
            str = str.substr(1);
        }
        wordArr = str.split('_');
        wordArr = wordArr.map(function (word, index) {
            // firstLetterToUpperCase 在题目 1 中实现
            return index === 0 ? word : firstLetterToUpperCase(word);
        });
        res = wordArr.join('');
        if(isFisrstLetterUnderscore){
            res = '_' + res;
        }
    } else {
        res = str;
    }
    return res;
}

题 4:删除字符串中所有的数字

function removeNum(str) {
    var res;
    if (typeof str === 'string') {
        res = str.replace(/\d/g, '');
    } else {
        res = str;
    }
    return res;
}

题 5: 反转字符串

function reverse(str) {
    var res;
    if (typeof str === 'string') {
        res = [];
        var charArr = str.split('');
        var currIndex = charArr.length - 1;
        for(; currIndex >= 0; currIndex--){
            res.push(charArr[currIndex]);
        }
        res = res.join('');
    } else {
        res = str;
    }
    return res;
}

题 6: 统计字符串中各字符在字符串中出现的数量

function caculateExistNum(str) {
    var res = false;
    if (typeof str === 'string') {
        res = {};
        var charArr = str.split('');
        charArr.forEach(function (eachChar) {
            res[eachChar] = res[eachChar] ? res[eachChar] + 1 : 1;
        });
    }
    return res;
}

本文遵守创作共享CC BY-NC-SA 4.0协议
网络平台如需转载必须与本人联系确认。

打开App,阅读手记
27人推荐
发表评论
随时随地看视频慕课网APP

热门评论

题目3还可以用正则表达式来做,代码如下:

function toCamelStyle(str) {

            if( typeof str == "string" ) {


                if( str.indexOf("_") !== -1 ) {


                    return str.replace(/\_[0-9a-z]*/ig,function($0) {

                        return $0.substr(0,1) + $0.substr(1).charAt(0).toUpperCase() + $0.substr(2);

                    }).split("_").join("");

                }

            }

        } 


题6:function caculateExistNum(str){var arr = str.split('');var json = {};var j;for(var i = 0; i < arr.length; i++) {j = arr[i];if (json[j]){json[j]++;} else {json[j] = 1; } }return json;}

反转字符串可以这样写噢,str.split("").reverse().join("")

查看全部评论