0

true を返すように表示されたときに abcdef をプロンプトに入力しても、このコードがまだ false を返す理由がわかりません。

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

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 に答える