我正在尝试获取辅音列表。然而,使用这段代码,当我的字符串长度超过 1 时,我什么也得不到。
我尝试过toString
和concat
,转换为数组
function solve(s) {
let subStrList = [];
let tm = "";
for(let i = 0; i < s.length; i++){
if(!"aeiou".includes(s[i])){
tm += s[i];
}else{
subStrList.push(tm);
tm = "";
}
}// For End
return subStrList;
}
OUTPUT: [ 'z', 'd', '' ]
最佳答案
您使用 tm 作为累加器来收集辅音序列,然后将收集的辅音添加到结果数组中,并在找到元音后重置累加器。这种算法的一个问题是您必须处理字符串末尾是辅音的情况,现在您已将累加器 (tm
) 中的所有内容添加到列表中。例如:
function solve(s) {
let subStrList = [];
let tm = "";
for (let i = 0; i < s.length; i++) {
if (!"aeiou".includes(s[i])) {
tm += s[i];
} else {
subStrList.push(tm);
tm = "";
}
} // For End
if (tm !== "") {
subStrList.push(tm);
}
return subStrList;
}
console.log(solve("zadacs"));
但请注意,一个更简洁的解决方案是一个简单的正则表达式:
function solve(s) {
return s.split(/[aeiou]/g);
}
console.log(solve("zadacs"));
注意:如果需要,您还可以使用 s.split(...).filter(Boolean)
删除空子字符串。
关于javascript - 当我向该字符串末尾添加多个字符时,为什么我一无所获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57380081/