如果if语句中的Javascript函数应该为true,则该函数返回false
Javascript function returns false when it should be true from an if statement?
我想写一个函数,它以字母为参数,如果是元音,则返回true,否则返回false。
我设置了一个字母数组,并使用if语句来提取元音,但函数返回false,它是元音还是辅音?
关于如何让函数在传递元音时返回true的任何想法。
var arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
function max(ltr) {
for (var item = 0; item < arr.length; item++) {
if (item == 'a' || item == 'e' || item == 'i' || item == 'o' || item == 'u') {
return true;
} else {
return false;
}
}
}
函数所做的是根据元音列表检查数字0,并立即返回false
(因为0
不等于任何元音)。它甚至从不看ltr
。
您需要修复函数,并将循环移到外部。
正如其他人所说,您正在将Int
(item
)与字符串进行比较。
试试这个:
if (ltr == 'a' || ltr == 'e' || ltr == 'i' || ltr == 'o' || ltr == 'u')
通过这种方式,您可以跳过整个arr
,除非您也出于其他原因使用它。我不知道为什么。
另一个(更容易的)实现是使用正则表达式:
function isVowel(letter) {
return /^[aeuio]$/.test(letter)
}
这测试ltr
是否与RegExp
匹配,以及它是否是单个字符。
您正在将字符与int(item)进行比较在第一步骤中,item=0;它不是一个字符,并且返回错误的
项是int,您可以像检查字符串一样检查它。使用toString(N)将其转换为另一个碱基,或使用arr[item]从arr中获取字母。
我认为这段代码会起作用:
var vowelsconsonants = function (vowel,consonant) {
if (vowel.length > 0 && consonant.length > 0) {
if (vowel === 'a' || vowel === 'e'|| vowel === 'i' || vowel === 'o' || vowel ==='u') {
return true;
} else {
return false;
}
} else {
return false;
}
};
试试看。。。
您需要使用项的索引来返回数组中的值,即
if (arr[item] == 'a' || arr[item] == 'e' || arr[item] == 'i' || arr[item] == 'o' || arr[item] == 'u')
相关文章:
- JavaScript:只有当数组中的所有项都为true时才执行函数
- 如果函数返回True,则显示Javascript按钮
- 我对“;返回true"嵌套函数内部;t工作
- 如果函数PHP中的条件为true,则禁用链接
- JavaScript函数未返回true
- 如何使以下函数返回true或false
- 如何使函数将属性值从 FALSE 设置为 TRUE
- 如果onchange为true,如何运行函数
- js事件,用于函数内部的when语句变为true
- 在执行另一个异步函数之前,只有当条件为true时,才执行某些异步函数的最佳方法
- 从OnClientClick调用函数时,在JavaScript中返回true
- 等待anchor标记onclick函数响应为true
- 从异步函数返回true/false以用于同步if()
- checkbox.checked在onclick函数内部总是返回true
- JS重试函数几次,看看它是否返回true
- 函数返回undefined而不是true/false
- 函数始终返回 true
- 从 onclick 调用函数,为什么我的参数被评估为 true
- 使用函数将 V-show 设置为 true 或 false
- 如何使表单仅在JavaScript函数返回true时才调用PHP