この文字列をループすると、アラートは test を 4 回 (正しく) 出力しますが、最後に "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;
}
これは関数が行う必要があることです: pattern のすべての個々の文字が (順序に関係なく) 文字列に現れる場合に true を返します (大文字と小文字を区別しません)
例 match("abcdef","@C2D!") は true を返します match("abcdef","CAfe") は true を返します match("abcdef","CG") は false を返します