Javascript 为什么我在这个字符串的末尾添加多个字符时什么也没有得到?
我想得到一份辅音的列表。然而,使用这段代码,当字符串长度超过1时,我什么也得不到 我尝试了Javascript 为什么我在这个字符串的末尾添加多个字符时什么也没有得到?,javascript,arrays,string,Javascript,Arrays,String,我想得到一份辅音的列表。然而,使用这段代码,当字符串长度超过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{
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', '' ]
函数求解{
设subStrList=[];
让tm=”“;
for(设i=0;i
这是因为您没有在末尾添加最后一组辅音。
试试这个:
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
subStrList.push(tm);
return subStrList;
}
函数求解{
设subStrList=[];
让tm=”“;
for(设i=0;i
您使用tm
作为累加器来收集辅音序列,然后将收集到的辅音添加到结果数组中,并在找到元音后重置累加器。这种算法的一个问题是,您必须处理字符串末尾是辅音的情况,现在您必须将累加器(tm
)中的任何内容添加到列表中。例如:
函数求解{
设subStrList=[];
让tm=”“;
for(设i=0;i console.log(solve(“zadacs”)代码>这是因为只有在有以下辅音的情况下才能添加到数组中。因此,在功能完成后,您有:
s: "zodacs"
subStrList: (2) ["z", "d"]
tm: "cs"
您可以在退货前添加支票:
...
if(tm.length > 0) {
subStrList.push(tm);
tm = "";
}
return subStrList;
这是我的解决方案,我错过了两个案例。1.当最后一个字母不是元音和2时会发生什么。当第一个字母不是元音时会发生什么。
我知道这不是最干净的代码,但这是我能想出的解决方案。谢谢你的帮助
function solve(s) {
let subStrList = [];
let subStr = "";
for (let i = 0; i < s.length; i++) {
if (!"aeiou".includes(s[i])) {
subStr += s[i];
}
else if(subStr !== ""){
subStrList.push(subStr);
subStr = "";}
} // FOR END
if (subStr.length > 0) {
subStrList.push(subStr);
}
return subStrList;
}
函数求解{
设subStrList=[];
让subStr=“”;
for(设i=0;i0){
subStrList.push(subStr);
}
返回子列表;
}
能否提供完整的输入、预期输出和当前(实际)输出?您在底部提供了部分内容。有一个输入错误:tm+=”
您显式地将tm
设置为空字符串;你的意思是这样吗?@DaveNewton是的,看起来他正在重置存储连续辅音的temp变量。但是,如果输入以辅音结尾,则该变量不会附加在最末尾。如果没有a
,e
,i
,则,o
或u
字符位于字符串末尾,您将丢弃tm
中存储的任何内容,而不是将其添加到subStrList
中,如果最后一个tm
不是空的,则只添加它。第二个解决方案将在末尾添加一个空字符串,例如,如果输入是zadacsa
。也许您可以使用Array.filter()
来修复它。@Shidersz老实说,我不完全确定OP想要如何处理空字符串,因为在zaaadacs
这样的情况下,似乎也没有试图解释空字符串。不过,我补充了一条关于该案件的说明。