我已经编写了一个找到两个字符串的代码,作为回报,它应该告诉我这两个字符串是否存在:
function searchTwoString(data, str1, str2) {
var strX = str1 + " " + strValueX + "\r\n";
var strY = str2 + " " + strValueY;
var strValueX;
var strValueY;
for (var i = 0; i < data.length; i++) {
if (data[i] === str1) {
var strValueX = " exist";
continue;
} else if (data[i] === str2) {
var strValueY = " exist";
break;
}
}
return strX + strY;
}
获得的结果:
str1未定义
str2未定义
预期结果:
str1存在
str2存在
告诉我我的strvalueX
和strvalueY
是undefined
是不是我已经在if语句中给出了值?
感谢那些会帮助您的人
答案 0 :(得分:1)
您的陈述顺序已关闭。在第2行和第3行中,您正在使用strValueX
和strValueY
进行定义。第2行和第3行应移至返回值之前,以便它们具有更新后的值。
我相信还有一个阴影问题,例如在if语句中,您正在使用var
关键字(例如var strValueX = " exist";
)创建新变量。您将要从if语句中删除var
,以便更新外部变量的值。
答案 1 :(得分:1)
这是对您的问题的评论。
希望您能理解我在说什么。
function searchTwoString(data, str1, str2) {
var strX;// = str1 + " " + strValueX + "\r\n";
var strY;// = str2 + " " + strValueY;
var strValueX;
var strValueY;
for (var i = 0; i < data.length; i++) {
if (data[i] === str1) {
// var strValueX = " exist";
// do not define again
strValueX = " exist";
continue;
} else if (data[i] === str2) {
// var strValueY = " exist";
// do not define again
strValueY = " exist";
break;
}
}
// define the value here after strValueX and strValueY is set
strX = str1 + " " + strValueX + "\r\n";
strY = str2 + " " + strValueY;
return strX + strY;
}