2017-01-30 76 views
0

为什么WebStorm会提醒我我的for循环最多只能运行一次?AngularJS JavaScript for循环警告,最多只能运行一次

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