javascript 有没有一种方法可以使用filter函数来删除数组中的项,直到满足某个条件?

cyej8jka  于 2023-08-02  发布在  Java
关注(0)|答案(2)|浏览(71)

我想去掉一个字符串中的辅音,直到我得到一个元音。例如字符串"glove",结果应该是"ove"
这是我的尝试,但它只会删除第一个辅音。

var newStr = str.split("").splice(1, ).join("");
var removeLetter = str.split("").shift();

字符串

x759pob2

x759pob21#

你可以使用一个函数来删除所有单词直到你的条件。

function removeConsonantsUntilVowel(str) {
  const vowels = 'aeiouAEIOU';
  let index = 0;

  for (let i = 0; i < str.length; i++) {
    if (vowels.includes(str[i])) {
      index = i;
      break;
    }
  }

  return str.substring(index);
}

const word = "glove";
const result = removeConsonantsUntilVowel(word);
console.log(result);

字符串
但如果你不想这样,这是另一种方式,你可以做到这一点。

const vowels = 'aeiouAEIOU';
let index = 0;
const str2 = "GLOVE"

for (let i = 0; i < str2.length; i++) {
  if (vowels.includes(str2[i])) {
    index = i;
    break;
  }
}
console.log(str2.substring(index))

deyfvvtc

deyfvvtc2#

好吧,为了 * 做某事直到 * 你需要一个循环。首先,使用.split('')将输入字符串"glove"拆分为一个char数组,然后检查每个char是否与您定义的任何元音(['a', 'e', 'i', 'o', 'u'])匹配。当找到第一个元音时,您中断该过程,使用.join()将字符重新组合在一起并返回结果。

const isVowel = char =>
  ["a", "e", "i", "o", "u"].includes(char.toLowerCase());

const removeConsonantsUntilVowel = str => {
  let foundVowel = false;

  return str
    .split("")
    .filter(char =>
      !foundVowel
        ? !isVowel(char)
          ? false
          : (foundVowel = true)
        : true
    )
    .join("");
};

const result = removeConsonantsUntilVowel("glove");
console.log(result);

字符串

相关问题