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
之前,会发生什么情况?这是我一直在尝试做的。这就是我一直在尝试做的。