我正在试着运行一个做猪拉丁的函数。我被困在了第一步。
当我将输入参数设置为等于'eat‘=>时,我希望我的代码返回字符串加上'ay’。请参阅下面的if语句代码。
相反,当我运行我的代码时,它返回undefined。我希望它返回'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')
发布于 2019-05-24 02:42:29
你把includes()
的参数搞错了。语法是container.includes(element)
,所以应该是:
if (['a', 'e', 'i', 'o', 'u'].includes(element[0])) {
发布于 2019-05-24 02:55:46
JavaScript本身提供了'includes‘和'charAt’函数。可以使用str.charAt(0),而不是将字符串拆分为字符数组并查找第一个元素。并包含函数在数组中搜索,如果有任何元素匹配则返回true。
const pigify = (str) => {
if(['a', 'e', 'i', 'o', 'u'].includes(str.charAt(0))) {
return str+'ay';
}
https://stackoverflow.com/questions/56281183
复制相似问题