0

我不明白为什么即使我在提示中键入 abcdef 时该代码仍然返回 false,因为它应该返回 true。

var userinput = prompt('Input characters:');

var lowercase = userinput.toLowerCase();

var allowedcharacters = ["a", "b", "c", "d", "e", "f"]

function match(input, statement) {
    for (var i = 0; i < statement.length; i++) {
        if (input.indexOf(statement[i]) == -1) {
            return false;
        }
    }
    return true;
}

if (lowercase == allowedcharacters){
  alert(true);
}
else{
  alert(false);
}
4

4 回答 4

1

这是完整的代码。这个是通过查看这个尝试获得一个想法来工作的。欢呼!

在此处输入图像描述

于 2013-11-07T06:18:59.053 回答
0

你没有调用你的match函数。你可能想要:

if (match(lowercase, allowedcharacters)){
  alert(true);
}
else{
  alert(false);
}

编辑根据请求,如果没有字符与不允许的字符匹配,则match返回一个变体:true

function noneMatch(input, disallowed) {
    for (var i = 0; i < disallowed.length; i++) {
        if (input.indexOf(statement[i]) >= 0) {
            return false;
        }
    }
    return true;
}
于 2013-11-07T05:30:47.450 回答
0

您没有使用您构建的功能匹配

于 2013-11-07T05:31:11.603 回答
0
var userinput = prompt('Input characters:');

var lowercase = userinput.toLowerCase();

var allowedcharacters = ["a", "b", "c", "d", "e", "f"]



if (match(lowercase,allowedcharacters)){
  alert(true);
}
else{
  alert(false);
}


//function to check
function match(input, statement) {
    for (var i = 0; i < statement.length; i++) {
        if (input.indexOf(statement[i]) == -1) {
            return false;
        }
    }
    return true;
}
于 2013-11-07T05:35:12.293 回答