javascript for循环和匹配字符串

时间:2016-04-22 08:12:23

标签: javascript

我遇到循环问题并与JSONObj进行比较。我的代码有效,除非JSONObj中不存在该项。

我想比较2字符串 JSONObj res 不存在在myTextarea2中给我一条消息,如输入 BBB 不存在< / p>

我试过boolen var isNomatch = ((JSONObj[i] == res[b]))

if (isNomatch == false)我认为这个想法是错误的

if((JSONObj[i] !== res[b])){

我的for循环是奇数

Html头

<input type="text" id="myText" value="26B,26N,245">
<button onclick="myFunction()">ok</button>
<br>
<textarea  id="myTextarea">Item</textarea > 
<br> 
<textarea  id="myTextarea2"></textarea >  

的Javascript

var JSONObj = [
    {"nummer":"26B", "item":"26B) Sonic Screwdriver\n\n"},
    {"nummer":"26N", "item":"26N) Pizza\n\n"},
    {"nummer":"245", "item":"245) I need Coffe\n\n"}

]

  function myFunction(){
      var str = document.getElementById("myText").value;
      var res = str.split(",");

      for(var b = 0; b < res.length; b++) {

          for(var i = 0; i < JSONObj.length; i++) {

              //Here is the problem
              if((JSONObj[i] !== res[b])){
              var str2 = res[i]; 
              var text2 = [text2,str2].join("");
      document.getElementById("myTextarea2").value  =text2;
          }

          //this one's OK 
          if (JSONObj[i].nummer === res[b]){ 

              var str1 = JSONObj[i].item; 
              var text1 = [text1,str1].join("");
      document.getElementById("myTextarea").value  =text1;
      document.getElementById("myTextarea").cols = "100";
      document.getElementById("myTextarea").rows = "20";
       } 
      } 
     } 
    }

1 个答案:

答案 0 :(得分:0)

正如您已经注意到存在问题的部分

//Here is the problem
      if((JSONObj[i] !== res[b])){
      var str2 = res[i]; 
      var text2 = [text2,str2].join("");

      }

您正在尝试比较某个对象是否不等于字符串,该字符串始终为true

将语法更改为

if(JSONObj[i].nummer !== res[b]){

我在你的代码中看到了另一个问题。这部分

 //this one's OK 
          if (JSONObj[i].nummer === res[b]){ 

              var str1 = JSONObj[i].item; 
              var text1 = [text1,str1].join("");
          } 

在for循环之外,如何访问i的索引值。既然你说它的工作原理,你在这里发布的代码不是你真正拥有的代码,或者你的代码根本不起作用。