Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problèmes avec boucles for imbriquée

    30 septembre 2016 à 12:57:42

    Bonjour,

    J'ai un problème quand je crée un json dans $scope, apparement, le [s] n'est pas pris en compte. Impossible de trouver la raison de cela. 

         $scope.report.sprints[s].users[u].time += allLoadedIssues[i].fields.aggregatetimeoriginalestimate;


    On dirait que la ligne agit comme si elle était écrit comme ça :

         $scope.report.sprints.users[u].time += allLoadedIssues[i].fields.aggregatetimeoriginalestimate;
    


    Du coup le même user qui apparait dans tout les sprints reçoit la valeur "aggregatetimeoriginalestimate"

    $scope.report = {};
    $scope.report.sprints = [];
    var usersJSON = {};
    usersJSON.users = [];
    _createReportBase = function () {
                    $scope.report.sprints = activeAndFutureSprints.sprints;
                    for (var s = 0; s < $scope.report.sprints.length; s++) {
                        $scope.report.sprints[s].users = [];
                        for (var u = 0; u < usersJSON.users.length; u++) {
                            $scope.report.sprints[s].users.push(usersJSON.users[u]);
                        }
                    }
                };
    
    _getIssues = function () {
                    allLoadedIssues = [];
    
                    var allPromises = [];
                    for (var s = 0; s < activeAndFutureSprints.sprints.length; s++) {
                        allPromises.push(getIssuesForSprint(activeAndFutureSprints.sprints[s], s));
                    }
    
                    $q.all(allPromises).then(function () {
                        //Création du report
                        _createReportBase();
                        //ajout du temps au users
                        for (var i = 0; i < allLoadedIssues.length; i++) {
                            for (var s = 0; s < $scope.report.sprints.length; s++) {
                                if ($scope.report.sprints[s].id === allLoadedIssues[i].sprint.id) {
                                    for (var u = 0; u < $scope.report.sprints[s].users.length; u++) {
                                        if (allLoadedIssues[i].fields.assignee !== null) {
                                            if ($scope.report.sprints[s].users[u].displayName === allLoadedIssues[i].fields.assignee.displayName) {
                                                if ($scope.report.sprints[s].users[u].time === 0) {
                                                    $scope.report.sprints[s].users[u].time = allLoadedIssues[i].fields.aggregatetimeoriginalestimate;
                                                } else {
                                                    $scope.report.sprints[s].users[u].time += allLoadedIssues[i].fields.aggregatetimeoriginalestimate;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        console.log($scope.report);
    //                    $scope.report.users.push(user);
                    }, function () {
                        alert('Error');
                    });
                };

    N'hésitez pas à me demander des infos complémentaire si je ne suis pas clair.

    PS: Je ne pas fournir un json, car je récupère les données d'une api (JIRA)

    Joseph

    • Partager sur Facebook
    • Partager sur Twitter

    Problèmes avec boucles for imbriquée

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown