JavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+'ay'

Posted

技术标签:

【中文标题】JavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+\'ay\'【英文标题】:JavaScript: Loop through string and return string + 'ay' if string contains vowel in first letterJavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+'ay' 【发布时间】:2019-10-10 09:07:21 【问题描述】:

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

当我设置输入参数等于'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 `$elementay`
    

    // 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')

【问题讨论】:

再次阅读文档以获取包含developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 【参考方案1】:

您对includes() 的参数有误。语法是container.includes(element),所以应该是:

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

【讨论】:

成功了!但现在我在不包含时遇到了困难。不包括以下内容: if (['a', 'e', 'i', 'o', 'u'].includes(!element[0])) 你把!放在整个表达式之前:!['a', 'e', 'i', 'o', 'u'].includes(element[0]) 谢谢您的原始建议和!展示位置成功!【参考方案2】:

JavaScript 本身提供了函数“includes”和“charAt”。可以使用 str.charAt(0) 代替将字符串拆分为字符数组并查找第一个元素。并包含函数搜索数组并在任何元素匹配时返回 true。

const pigify = (str) => 
  if(['a', 'e', 'i', 'o', 'u'].includes(str.charAt(0))) 
  return str+'ay';

【讨论】:

一些解释此代码如何回答 OP 问题的词语将使您的答案更有用。

以上是关于JavaScript:如果字符串在第一个字母中包含元音,则遍历字符串并返回字符串+'ay'的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate 按数组中包含的第一个字母过滤

SQL Server 2008 查询以查找列中包含非字母数字字符的行

java判断一个字符串中包含多少个字母

在javascript中包含整个字符串中的单词[关闭]

万变不离核心基础第五关——改变字符串首字母的大小写/字符串中包含多个单词,改变每个单词首字母的大小写

C语言编程题 输入一个由大写字母组成的字符串,求字符串中包含了几个不同的字母