2017-01-30 5 views
0

Почему WebStorm предупреждает меня, что мой цикл for будет работать не более одного раза?AngularJS JavaScript для предупреждения цикла, который будет работать не более одного раза

if (data[i].name) { 
    for (var j = 0; j < data[i].name.length; j++) { 
     hobby = $scope.users[data[i].name].hobby; 
     sport = $scope.users[data[i].name].sport; 
     education = $scope.users[data[i].name].education; 
     break; 
    } 
} 

В чем проблема? Что мне здесь не хватает?

+4

У вас есть «break;» в конце цикла, который заставит выполнение выйти из цикла после одного прохода. – rakemen

+0

@rakemen его исправляет – passion

+0

@rakemen не мой 'j' избыточный? или это действительно необходимо? – passion

ответ

2

Как уже упоминалось в комментариях, цикл выполняется только один раз максимум, так как вы выполните break выполнение после первой итерации.

Однако, глядя на код, вам может не понадобиться петля здесь вообще. Кажется, что все, что вы хотите сделать, это проверить, установлена ​​ли строка data[i].name, и если да, то получите некоторые свойства на основе этого, правильно?

Если это так, снимите петлю, так как он ничего не способствует публикуемую сниппета:

if (data[i].name) { 
    hobby = $scope.users[data[i].name].hobby; 
    sport = $scope.users[data[i].name].sport; 
    education = $scope.users[data[i].name].education; 
} 

data[i].name Если предположить, что это строка, data[i].name.length только даст вам длину строки.

+0

спасибо, да, это правильно. – passion