正确的方法来打破for循环中的if语句

时间:2016-01-18 03:24:03

标签: javascript angularjs

什么是打破嵌套if语句/ for循环的正确方法?我尝试了以下方法,但首选方法不起作用:

service.js - 不工作但更好,因为一旦找到匹配就会爆发

    getSelectedService: function(serviceId) {
        serviceId = parseInt(serviceId);
        for(i=0;i<servicesData.length;i++) {
            if(servicesData[i].id === serviceId) {
                var service = servicesData[i];
                return service;
            }
        }
    }

services.js - 工作但不好,因为即使找到匹配项也会循环播放所有内容

getSelectedService: function(serviceId) {
    serviceId = parseInt(serviceId);
    servicesData.forEach(function(service) {
        if(service.id === serviceId) {
            var selectedService = service;                  
        }
    });
    return selectedService;
}

1 个答案:

答案 0 :(得分:1)

如果你想在第一场比赛中停下来,你应该使用while循环。

var keepGoing = true;
var i = 0;
var service;

while( keepGoing && i < servicesData.length ) {
    if( servicesData[i].id === serviceId ) {
        service = servicesData[i];
        keepGoing = false;
    } else {
        i++;
    }
}

return service;