当循环遍历此字符串时,警报会打印出测试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;
}
答案 0 :(得分:2)
match
函数没有return语句,因此返回undefined
。这意味着
alert(match("abcdef","CAfe"));
将始终至少显示一次“未定义”警报。要不显示警报,请在不使用alert
的情况下调用该函数:
match("abcdef","CAfe");
或者你可以让函数返回一些东西,比如stringConcatenate
,否则会无缘无故地计算出来。
答案 1 :(得分: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;
}
答案 2 :(得分:0)