javascript - 当我向该字符串末尾添加多个字符时,为什么我一无所获?

标签 javascript arrays string

我正在尝试获取辅音列表。然而,使用这段代码,当我的字符串长度超过 1 时,我什么也得不到。

我尝试过toStringconcat,转换为数组

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/

相关文章:

javascript - 更新对象数组

arrays - Excel VBA 按降序对数字数组进行排序的最快方法?

C++:以对角线方式处理二维数组元素

c - 对动态分配的字符串进行排序

c - 获取 argv[0] 中 n 和 argv 长度之间的子字符串

javascript - Node.js 从 do while 循环中调用异步函数

javascript - react : Updating nested component state based on onFocus, "maximum call stack size exceeded"错误

javascript - Paypal Checkout 客户端集成 - 返回订单 ID promise 的问题

javascript - Firebase 使用 Javascript 查询数组或对象

c++ - 在不删除的情况下将字符串拆分为具有多个分隔符的多个字符串?