2016-12-06 5 views
0

このコードは機能しますが、配列内にItem === CheckIdがあるとすべての結果が表示されます。前回だけにいかがですか? (Item === CheckId).lengthの結果は未定義です。また、if文の外で変数を作成して、if文の中でそれを増やそうとしました。しかし、それは一度だけ増加しました。forループの最後の繰り返しif(何かが何かに等しい)

 function updateDirections() { 

        $('.ui-selected').each(function(i, obj) { 
         textArea = $("#fname").val(); 
         textArea = textArea.split(';'); 
         //textArea.replace(/\(.+?,\ \{/, ""); 
         //console.log((textArea[4].toLowerCase().indexOf(this.id) >= 0)); 
         //textArea = textArea.map(function(w){ return +!!~this.id.indexOf(w) }); 
         //console.log(obj.id); 

         Item = this.id; 
         var arrayLength = textArea.length; 
         for (var i = 0; i < arrayLength; i++) { 
          CheckId = textArea[i]; 
          CheckId = CheckId.match(/\(.+?,\ \{/) 
          CheckId = String(CheckId).replace(/\(/g, "").replace(/,/g, "").replace(/ /g, "").replace(/\{/g, ""); 

          if (Item === CheckId) { 
           console.log(textArea[i]); 
          } 

         } 


        }); 
       } 
+5

'textArea.splitを( '; '); '?それは文字列ですが、既に配列を持っています – Mahi

+2

Itemを 'string'に、CheckIdを '​​string'に設定しています。ループはtextAreaで何もしません。あなたが何かをする前にtextAreaが何であるかを考えれば、何をしようとしていますか? – Taplar

+0

このコードは動作しません。配列プロトタイプには 'split'関数がありません。また、(Item === CheckId).length'をしたいと言ったときにはどういう意味ですか?その場合ブール値の長さをチェックしています... – Damon

答えて

1

私はあなたが達成したいのかがわからないんだけど、あなたは最後console.logの値をしたい場合、あなたは確かに変数を使用することができます

Item = this.id; 
var arrayLength = textArea.length, 
    lastValue = null; // here is the variable 
for (var i = 0; i < arrayLength; i++) { 
    CheckId = textArea[i]; 
    CheckId = CheckId.match(/\(.+?,\ \{/) 
    CheckId = String(CheckId).replace(/\(/g, "").replace(/,/g, "").replace(/ /g, "").replace(/\{/g, ""); 

    if (Item === CheckId) { 
     lastValue = textArea[i]; 
    } 

} 
// do anything you want with lastValue 
+0

Thanlあなたは非常に! –

関連する問題