JS switch 语句有时有效
JS switch statement works only sometimes
我正在编写一个从 str 参数中删除元音的程序,我决定使用 switch 语句来实现此目标。
我很不擅长解释东西所以我给你举个例子:
No offense but,\nYour writing is among the worst I've ever read
应该变成
N ffns bt,\nYr wrtng s mng th wrst 'v vr rd
但是我的输出是这样的:
N ffns bt,\nYur wrtng s mng th wrst 'v vr rad
程序出于某种原因决定保留“u”和“a”。在寻找原因将近 1.5 小时后,我放弃了,因为我根本不知道我做错了什么。
function disemvowel(str) {
let arr = str.split(''); // str -> arr
for (let x = 0; x <= arr.length; x++) { // remove vowels
switch(arr[x]) {
case "a":
case "e":
case "i":
case "o":
case "u":
case "A":
case "E":
case "I":
case "O":
case "U":
arr.splice(x, 1);
break;
}
}
str = arr.join([separator = '']) // arr -> str
return str;
}
数组长度在每 splice
之后发生变化。可以先定义length
,每删除一个项目就减x
:
function disemvowel(str) {
let arr = str.split(''); // str -> arr
const length = arr.length;
for (let x = 0; x < length; x++) { // remove vowels
switch(arr[x]) {
case "a":
case "e":
case "i":
case "o":
case "u":
case "A":
case "E":
case "I":
case "O":
case "U":
arr.splice(x, 1);
x--;
break;
}
}
str = arr.join([separator = '']) // arr -> str
return str;
}
console.log(
disemvowel("No offense but,\nYour writing is among the worst I've ever read")
);
我正在编写一个从 str 参数中删除元音的程序,我决定使用 switch 语句来实现此目标。 我很不擅长解释东西所以我给你举个例子:
No offense but,\nYour writing is among the worst I've ever read
应该变成
N ffns bt,\nYr wrtng s mng th wrst 'v vr rd
但是我的输出是这样的:
N ffns bt,\nYur wrtng s mng th wrst 'v vr rad
程序出于某种原因决定保留“u”和“a”。在寻找原因将近 1.5 小时后,我放弃了,因为我根本不知道我做错了什么。
function disemvowel(str) {
let arr = str.split(''); // str -> arr
for (let x = 0; x <= arr.length; x++) { // remove vowels
switch(arr[x]) {
case "a":
case "e":
case "i":
case "o":
case "u":
case "A":
case "E":
case "I":
case "O":
case "U":
arr.splice(x, 1);
break;
}
}
str = arr.join([separator = '']) // arr -> str
return str;
}
数组长度在每 splice
之后发生变化。可以先定义length
,每删除一个项目就减x
:
function disemvowel(str) {
let arr = str.split(''); // str -> arr
const length = arr.length;
for (let x = 0; x < length; x++) { // remove vowels
switch(arr[x]) {
case "a":
case "e":
case "i":
case "o":
case "u":
case "A":
case "E":
case "I":
case "O":
case "U":
arr.splice(x, 1);
x--;
break;
}
}
str = arr.join([separator = '']) // arr -> str
return str;
}
console.log(
disemvowel("No offense but,\nYour writing is among the worst I've ever read")
);