Я хочу вызвать функцию (отображающую модальный режим), когда определенное условие выполнено (две строки совпадают друг с другом).
Условия изменяются и задаются в цикле for (он циклически повторяет элементы двух файлов JSON).
Возможны три условия:
1) без ввода строк, без совпадений, без проблем;
2) Я набираю строку: цикл for говорит мне, что строки не совпадают;
3) Я набираю строку: цикл for сообщает мне, что строки совпадают.
Второе и третье условия являются проблемными, так как они находятся внутри цикла for, и мне нужно вызвать определенное действие для каждого из них, избегая повторения действия для каждого элемента в цикле, когда условие 2) выполнено выполнено.
Я хочу установить логический флаг , но я не уверен, что понял, как его использовать.
Я создал переменную вне цикла for и присвоил ей значение «false».
Внутри цикла for я вызываю такую переменную, присваивая ей значение «true».
Вне второго цикла for я вызываю его в операторе if, который вызывает функцию для показа модальных значений.
Я написал следующий код:
function validateCitta() {
$("#cercaCitta").prop("disabled", false);
let text = $('#inlineFormInputCitta').val();
if (text === "") {
$("#errorLog").show();
}
else {
var check = false; // I set the flag variable
$.ajax({
url: "https://nominatim.openstreetmap.org/search?q=" + encodeURIComponent($("#inlineFormInputCitta").val()) + "&format=geocodejson",
dataType: "json",
success: function (data) {
for (let i = 0; i < data.features.length; i++) {
let typeCity = data.features[i].properties.geocoding.type;
if (typeCity === "city") {
let nameCity = data.features[i].properties.geocoding.name;
for (let i = 0; i < json.tappe.length; i++) {
let tappa = json.tappe[i];
let city = json.tappe[i].city;
if (city === nameCity) {
console.log("JSON file has been activated");
check = true; // the condition 3 is fulfilled, then I perform the action below:
$("#tbody").append("<tr><td>" + tappa.name + "</td><td>" + tappa.state + "</td><td>" + tappa.region + "</td><td>" + tappa.city + "</td></tr>");
}
else if (check){ // the condition 3 is false, the condition 2 is fullfilled, then I show the Modal:
$('#myModal').show();
}
;
}
;
}
}
}
})
}
};
Как правильно установить и вызвать логический флаг?
Можете ли вы показать мне несколько примеров, чтобы лучше понять использование такой конкретной переменной и различия между ее использованием с нуля и в цикле?