这个令人敬畏的网站的人。
自两周前左右以来,我一直在阅读和练习一些Javascript。在完成CodeAcademy的JS课程后,我发现了一个名为codeWars的网站。我正在努力解决其中一种做法。我的代码使用控制台或JSfiddle工作,我想知道为什么不工作。另外,我知道这段代码有点狡猾,你能给我一些建议吗?
由于
说明:
根据以下模式创建一个名为encode()的函数,用数字替换给定字符串中的所有小写元音:
a - > 1,e - > 2,i - > 3,o - > 4,你 - > 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;
}
谢谢你的时间,伙计们。
答案 0 :(得分:0)
所以我编辑了你的小提琴,它似乎工作得很好?
您刚刚没有调用您的功能或打印出结果。
我添加了自己的小提琴,只是调用函数并提醒值:
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'));