我正在尝试解决一个问题,即函数接受一个字符串,总是小写,然后取第一个字母并将其添加到字符串的后面。
它似乎没有用。
var fir;
function convert(str) {
str = str.split("");
fir = str[0];
str = str.join("");
switch (fir) {
case /[bcdfghjklmnpqrstvwxyz]/.test(fir):
var ind = str.substr(1);
str = ind + str[0];
break;
}
return str;
}
如果我从我的javascript的另一部分调用convert("pig");
,那么它应该返回“igp”
答案 0 :(得分:0)
我认为这就是您所需要的所有内容 - “函数接受一个字符串,总是小写,然后取第一个字母并将其添加到字符串的后面”。
function convert(str) {
str = str.substr(1) + str[0];
return str;
}
convert("pig");
如果你坚持使用你拥有的东西,我已经在这里修好了。
var fir;
function convert(str) {
str = str.split("");
fir = str[0];
str = str.join("");
switch (true) {
case /[bcdfghjklmnpqrstvwxyz]/.test(fir):
var ind = str.substr(1);
str = ind + str[0];
break;
}
return str;
}
convert("pig");
我所做的唯一更改是将switch(fir)
更改为switch(true)
,这就是您的切换案例无效的原因。
答案 1 :(得分:0)
我认为您应该阅读有关Javascript字符串参考的信息。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
记住:
另一种方式(在ECMAScript 5中引入)是将字符串视为类似数组的对象,其中单个字符对应于数字索引:
现在,在阅读了JS String Reference之后。我们可以做一些更聪明的事情来连接切片的字符串数组,而没有0索引字母和字符串数组的最后一个字母。
这样你可以做一些没有正则表达式,切换和其他东西的东西。
请记住要始终阅读有关全局对象的参考资料,它可以轻松地为您节省大量工作并更好地理解JS语言
示例代码:
function convert(string){
return string.slice(1) + string[0];
}
答案 2 :(得分:0)
您的switch语句不正确。您的案例表达式case /[bcdfghjklmnpqrstvwxyz]/.test(fir)
计算为布尔值,而在切换表达式中,您传递fir
变量中的字符(如str[0] = 'p'
),这是不匹配的。所以你的case语句永远不会被执行,它会在没有做任何事情的情况下从switch块中出来。将其更改为switch(true)
,您应该感觉良好。