在字符串实践中修改字符

Modifiying characters in a string practice

本文关键字:字符 修改 实践中 字符串      更新时间:2023-09-26

这个很棒的网站的人。

我一直在阅读和练习一些Javascript自两周前左右。在完成CodeAcademy的JS课程后,我发现了一个名为codeWars的网站。我正纠结于其中一个练习。我的代码使用控制台或JSfiddle工作,我想知道为什么不工作。另外,我知道这个代码有点可疑,你们能给我一些建议吗?

感谢

声明:

创建一个名为encode()的函数,按照以下模式将给定字符串中的所有小写元音替换为数字:

a -> 1, e -> 2, I -> 3, 0 -> 4, u -> 5

我的小提琴

    function encode(word) {
        var repa = /a/gi;
        var repe = /e/gi;
        var repi = /i/gi;
        var repo = /o/gi;
        var repu = /u/gi;
        word = word.toLowerCase();
        len = word.length;
        for (i = 0; i < len; i++) {
            if (word[i] === 'a') {
                word = word.replace(repa, '1');
            }
            else if (word[i] === 'e') {
                word = word.replace(repe, '2');
            }
            else if (word[i] === 'i') {
                word = word.replace(repi, '3');
            }
            else if (word[i] === 'o') {
                word = word.replace(repo, '4');
            }
            else if (word[i] === 'u') {
                word = word.replace(repu, '5');
            }
        }
        return word;
    }

感谢大家的宝贵时间。

所以我编辑了你的小提琴,它似乎工作得很好?

你只是没有调用你的函数或打印结果。

我已经添加了我自己的小提琴,只是调用函数和提醒值:

function encode(word) {
    var repa = /a/gi;
    var repe = /e/gi;
    var repi = /i/gi;
    var repo = /o/gi;
    var repu = /u/gi;
    word = word.toLowerCase();
    len = word.length;
    for (i = 0; i < len; i++) {
        if (word[i] === 'a') {
            word = word.replace(repa, '1');
        } else if (word[i] === 'e') {
            word = word.replace(repe, '2');
        } else if (word[i] === 'i') {
            word = word.replace(repi, '3');
        } else if (word[i] === 'o') {
            word = word.replace(repo, '4');
        } else if (word[i] === 'u') {
            word = word.replace(repu, '5');
        }
    }
    return word;
}
alert(encode('aeiou'));
http://jsfiddle.net/rollyourowned/Lj6pmexL/2/

如果你想更聪明一点,你可以这样做:

function encode(word) {
    var letterArray = {a:1,e:2,i:3,o:4,u:5};
    word = word.toLowerCase();
    len = word.length;
    for (i = 0; i < len; i++) {
     var re = new RegExp(word[i], "gi");
     word = word.replace(re, letterArray[word[i]]);
    }
    return word;
}
alert(encode('aeiou'));
http://jsfiddle.net/rollyourowned/kotLa70g/