Я пытаюсь выйти из вызова функции, когда найдено значение , и я не могу обернуться вокруг этого.
Используя отладчик, я заметил, что return found;
строка заставляет выполнение перейти к концу функции, хорошо ... но после этого начинается другая итерация в цикле for
.
Я тоже пытался использовать break.
Мой код ниже.
Отредактировано
Я проверил логику в отладчике, добавивточка останова на found = true
, и она работает нормально, поэтому остается только то, что после этого она должна корректно завершиться ...
// Tree traversal until answer found via answer.id
function locateAnswer(wholeTree, answerID) {
var found = false;
if (wholeTree.answers) { // checks if next_queston is populated first
for (var i = 0; i < wholeTree.answers.length; ++i) {
if (wholeTree.answers[i].id == answerID) {
console.log("found!");
found = true;
return found; // TRIED break; TOO
} else {
for (var j = 0; j < $scope.breadcrumbs.length; ++j) {
if ($scope.breadcrumbs[j].question == wholeTree.question) {
// if already exist, we pop elements until it does not exist anymore
while ($scope.breadcrumbs[j]) {
$scope.breadcrumbs.pop();
}
}
}
// we push the new breadcrumb
$scope.breadcrumbs.push({ "question": wholeTree.question, "answer": wholeTree.answers[i].answer });
locateAnswer(wholeTree.answers[i].next_question, answerID);
}
}
}
// ALSO TRIED return HERE AFTER break
};