函数标题var

时间:2018-06-25 04:53:07

标签: 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++) {
     if (data[i] === str1) {
       var strValueX = " exist";
       continue;

     } else if (data[i] === str2) {
       var strValueY = " exist";
       break;
     } 
   }

   return strX + strY;

 }

获得的结果:

  

str1未定义

     

str2未定义

预期结果:

  

str1存在

     

str2存在

告诉我我的strvalueXstrvalueYundefined是不是我已经在if语句中给出了值?

感谢那些会帮助您的人

2 个答案:

答案 0 :(得分:1)

您的陈述顺序已关闭。在第2行和第3行中,您正在使用strValueXstrValueY进行定义。第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;

}