0

この文字列をループすると、アラートは test を 4 回 (正しく) 出力しますが、最後に "undefined" も出力します。undefined を返さないようにするにはどうすればよいですか。

これは - undefinedCAFE :: を返します

alert(match("abcdef", "CAfe"));


function match(string, pattern) {

    var patternUpperCase = pattern.toUpperCase();
    var stringUpperCase = string.toUpperCase();
    var stringConcatenate;
    var answer;

    for (var i = 0; i < patternUpperCase.length; i++) {
        if (patternUpperCase.charAt(i) != undefined) {
            if (patternUpperCase.charAt(i) >= 'A' && patternUpperCase.charAt(i) <= 'Z') {
                stringConcatenate += patternUpperCase.charAt(i);
                alert("test");
            }
        }
    }
    return stringConcatenate;
}
4

3 に答える 3

0

これを試して

alert(match("abcdef", "CAfe"));

    function match(string, pattern) {

    var patternUpperCase = pattern.toUpperCase();
    var stringUpperCase = string.toUpperCase();
    var stringConcatenate;
    var answer;
    var i = 0;


    for (var i = 0; i < patternUpperCase.length; i++) {
        if (patternUpperCase.charAt(i) != undefined) {
            if (patternUpperCase.charAt(i) >= 'A' && patternUpperCase.charAt(i) <= 'Z') {
                stringConcatenate = stringConcatenate + patternUpperCase.charAt(i);
                alert("test");
            }
        }
    }
   return stringConcatenate;
}
于 2013-11-07T13:37:03.823 に答える
0

最後の「未定義」の値は、関数の結果です。

alert(match("abcdef", "CAfe"));

http://jsfiddle.net/sava/Dw7jm/

于 2013-11-07T13:38:19.937 に答える