Javascript 为什么我在这个字符串的末尾添加多个字符时什么也没有得到?

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{

我想得到一份辅音的列表。然而,使用这段代码,当字符串长度超过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', '' ]
函数求解{
设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;iconsole.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
这样的情况下,似乎也没有试图解释空字符串。不过,我补充了一条关于该案件的说明。