首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript:循环通过字符串并返回字符串+ 'ay‘,如果字符串包含第一个字母的元音

JavaScript:循环通过字符串并返回字符串+ 'ay‘,如果字符串包含第一个字母的元音
EN

Stack Overflow用户
提问于 2019-05-24 02:39:18
回答 2查看 55关注 0票数 0

我正在试着运行一个做猪拉丁的函数。我被困在了第一步。

当我将输入参数设置为等于'eat‘=>时,我希望我的代码返回字符串加上'ay’。请参阅下面的if语句代码。

相反,当我运行我的代码时,它返回undefined。我希望它返回'eatay‘。为什么?

代码语言:javascript
复制
// 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')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-24 02:42:29

你把includes()的参数搞错了。语法是container.includes(element),所以应该是:

代码语言:javascript
复制
if (['a', 'e', 'i', 'o', 'u'].includes(element[0])) {
票数 2
EN

Stack Overflow用户

发布于 2019-05-24 02:55:46

JavaScript本身提供了'includes‘和'charAt’函数。可以使用str.charAt(0),而不是将字符串拆分为字符数组并查找第一个元素。并包含函数在数组中搜索,如果有任何元素匹配则返回true。

代码语言:javascript
复制
const pigify = (str) => {
  if(['a', 'e', 'i', 'o', 'u'].includes(str.charAt(0))) {
  return str+'ay';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56281183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档