Javascript 尝试比较数组并使用if-else语句对其进行切片

Javascript 尝试比较数组并使用if-else语句对其进行切片,javascript,Javascript,Pig拉丁赋值:代码应该将元音数组与用户输入的单词进行比较,然后根据元音在单词中的位置对单词进行切片。当前可用于某些单词,但无法用于某些单词。在“狗”上失败 我的第二个JS项目。我知道我必须比较两个数组,所以我尝试在嵌套for循环中将它们相互比较,但我认为这会导致问题。不确定为什么 const vowels = ["a", "e", "i", "o", "u"]; const splitWord = word .toLowerCase() .trim() .spl

Pig拉丁赋值:代码应该将元音数组与用户输入的单词进行比较,然后根据元音在单词中的位置对单词进行切片。当前可用于某些单词,但无法用于某些单词。在“狗”上失败

我的第二个JS项目。我知道我必须比较两个数组,所以我尝试在嵌套for循环中将它们相互比较,但我认为这会导致问题。不确定为什么

  const vowels = ["a", "e", "i", "o", "u"];
  const splitWord = word
    .toLowerCase()
    .trim()
    .split("");


  // Slice Word at first Vowel to end
  function firstPart(param1, param2) {
    for (let v = 0; v < vowels.length; v++) {
      for (let w = 0; w < splitWord.length; w++) {
        if (vowels[w] === splitWord[v]) {
          return `${splitWord.slice(v, splitWord.length).join("")}`;
        } else if (splitWord.length === 1) {
          return `${""}`;
        }
      }
    }
  }
  return firstPart(vowels, splitWord);
常量元音=[“a”、“e”、“i”、“o”、“u”]; 常量splitWord=word .toLowerCase() .trim() .拆分(“”); //将单词从第一个元音切到最后 函数第一部分(参数1、参数2){ for(设v=0;v<元音。长度;v++){ for(设w=0;w 预期的结果是在第一个元音处对任何单词输入进行切片,并在该单词的整个长度上保留数组的其余部分

所以。。。“复杂”变成“复杂”

complex在上述代码中起作用,但:


“dog”返回undefined而不是“og”

试试这个,它会找到一些元音的最小索引,并从中切片

常量元音=[“a”、“e”、“i”、“o”、“u”]; const word=“complex”.toLowerCase().trim(); 设minIndex=splitWord.length-1; for(让元音中的元音){ let position=单词indexOf(元音); 如果(位置!=-1&&positionconsole.log(result);这可以使用正则表达式完成: 我用你的两个词进行了测试:

fromVowel('complex');
fromVowel('dog');

function fromVowel(word1) {
  var regex = /[aeiou]/g;
  var found = word1.search(regex);

  console.log('Index of the first vowel', found);
  console.log(word1.substr(found, word1.length));
}

在这个片段中,首先
trim()
字符串和循环字符串以检查元音的第一次出现,如果找到,则断开循环并选择第一次出现的索引。然后通过
substr()

const元音={
a:“a”,
e:“e”,
我:“我”,
o:“o”,
u:“u”
};
函数get元音(str){
让string=str.trim();
设index=null;
对于(设i=0;i<
字符串长度;i+=1){
常数st=字符串[i];
if(元音[st.toLowerCase()]){
指数=i;
打破
}
}
string=str.substr(索引,
str(长度);
返回字符串;
}
log(get元音('dog'));
log(get元音('dOg'));
log(get元音('vpnserver');

console.log(get元音('vpnsErver');
您没有在btwi认为在
返回第一部分(元音,splitWord);
中的任何地方使用参数;我正在将这些参数传递到参数中。这不是真的吗?我不确定是否正确理解您的目标,但在这里使用正则表达式可能会有所帮助:
word.match(/[aeiou].*/)[0]
@kiro检查我的答案,应该对你没问题