首页 > 解决方案 > JavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+'ay'

问题描述

我正在尝试运行一个执行猪拉丁语的函数。我被困在第一步。

当我将输入参数设置为'eat' => 我希望我的代码返回字符串加上'ay'。请参阅下面的代码以了解 if 语句。

相反,当我运行我的代码时,它返回未定义。我希望它返回“eatay”。为什么?

// Pig Latin

const pigify = (str) => {

  let sentSplit = str.split(' ')
  //console.log(sentSplit)

  for (let i=0; i<sentSplit.length; i++){
    //console.log(sentSplit[i])
    let element = sentSplit[i]

    console.log(element[0])

    if (element[0].includes('a', 'e', 'i', 'o', 'u')){
      return `${element}ay`
    }

    // else if (!str[0].includes('a', 'e', 'i', 'o', 'u') && !str[1].includes('a', 'e', 'i', 'o', 'u')){
    //   return `${str.slice(2)}${str.slice(0,2)}ay`
    // }

    // else if(!str[0].includes('a', 'e', 'i', 'o', 'u')){
    //   return `${str.slice(1)}${str[0]}ay`
    // }
  }
}

pigify('eat')

标签: javascriptstringloopsreturnslice

解决方案


你有includes()错误的论据。语法是container.includes(element),所以它应该是:

if (['a', 'e', 'i', 'o', 'u'].includes(element[0])) {

推荐阅读