【发布时间】:2013-11-09 18:21:23
【问题描述】:
当循环遍历这个字符串时,警报会打印出 test 4 次(正确),但最后也会打印出“未定义”。如何使它不返回未定义。
这会返回 - 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;
}
这是函数需要做的:如果模式的所有单个字母都出现在字符串中(不分顺序)(不区分大小写),则返回 true
示例 match("abcdef","@C2D!") 返回真 匹配(“abcdef”,“CAfe”)返回真 match("abcdef","CG") 返回 false
【问题讨论】:
-
请注意,
.charAt()永远不会返回 undefined。如果索引超出范围,则返回空字符串(例如"")。
标签: javascript loops for-loop undefined