2016-12-06 2 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 you very much! –