Javascript 函数标题变量
我编写了一个代码,找到两个字符串,作为回报,它应该告诉我这两个字符串是否存在:Javascript 函数标题变量,javascript,string,function,variables,var,Javascript,String,Function,Variables,Var,我编写了一个代码,找到两个字符串,作为回报,它应该告诉我这两个字符串是否存在: 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+
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;
}
函数searchTwoString(数据、str1、str2){
var strX=str1+“”+strValueX+“\r\n”;
var strY=str2+“”+strValueY;
var-strValueX;
var Strvalue;
对于(变量i=0;i
取得的成果:
str1未定义
str2未定义
预期结果:
str1存在
str2存在
它告诉我我的strvalueX
和strvalueY
是未定义的
不是我已经在if语句中给出了值吗
多亏了那些愿意帮忙的人,你的发言顺序被取消了。在第2行和第3行中,在定义前使用
strValueX
和strValueY
。第2行和第3行应移到返回之前,以便它们具有更新的值
我认为还有一个隐藏问题,比如在if语句中,您正在使用
var
关键字创建新变量(例如var strValueX=“exist”;
)。您需要从if语句中删除var
,以便它更新外部变量的值 您的语句顺序已关闭。在第2行和第3行中,在定义前使用strValueX
和strValueY
。第2行和第3行应移到返回之前,以便它们具有更新的值
我认为还有一个隐藏问题,比如在if语句中,您正在使用
var
关键字创建新变量(例如var strValueX=“exist”;
)。您需要从if语句中删除var
,以便它更新外部变量的值 以下是对您的问题的回答和评论
希望你明白我在说什么
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;
函数searchTwoString(数据、str1、str2){
var strX;/=str1+“”+strValueX+“\r\n”;
变量strY;/=str2+“”+strValueY;
var-strValueX;
var Strvalue;
对于(变量i=0;i
}以下是对您的问题的回答和评论 希望你明白我在说什么
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;
函数searchTwoString(数据、str1、str2){
var strX;/=str1+“”+strValueX+“\r\n”;
变量strY;/=str2+“”+strValueY;
var-strValueX;
var Strvalue;
对于(变量i=0;i
}Move
var strX=str1+“”+strValueX+“\r\n”代码>和var strY=str2+“”+strvalue
到for
循环之后,就在返回之前,并移除循环内的第二个var
。另外,与您的问题没有直接关系,您的循环似乎不正确……您两次声明了strValueX
和strValueY
。您不需要for循环中的var
。因为您在顶部定义了strX
和strY
,但是当时strValueX
是未定义的如果str2
出现在str1
之前会发生什么?移动var strX=str1+“”+strValueX+“\r\n”代码>和var strY=str2+“”+strvalue
到for
循环之后,就在返回之前,并移除循环内的第二个var
。另外,与您的问题没有直接关系,您的循环似乎不正确……您两次声明了strValueX
和strValueY
。您不需要for循环中的var
。因为您在顶部定义了strX
和strY
,但是当时strValueX
是未定义的。如果str2
出现在str1
之前,会发生什么情况?这是我一直在尝试做的。这就是我一直在尝试做的。