Здравствуйте, вывожу из json полученного через ajax в таблицу html, а так же еще есть фильтрация по myArray.price. При вводе в фильтр от 0 до 0 выводить таблицу полностью, при пустых инпутах выводить, что таких значений нет.
Функция consoleLog(), которая отвечает и за фильтр и за построение таблицы вызывается на клик по кнопке. Фильтр работает более-менее, кроме одного момента - если из-за фильтра не выводится ни одного значения, то функция зацикливается. Как это исправить?
<input type="text" id="start" value="0">
<input type="text" name="" id="end" value="0">
<button type="button" id="btn" >Обновить</button>
<div id="error"></div>
<table id="table">
</table>
var myArray;
async function getJson() {
const res = await fetch('ссылка')
myArray = await res.json();
// = JSON.stringify(good);
}
async function consoleLog() {
await getJson();
console.log(myArray[0].name);
var startValue = document.getElementById('start').value;
var endValue = document.getElementById('end').value;
var div = document.getElementById('error');
var count = 0;
div.innerHTML = '';
if (!endValue && !startValue) {
console.log('pampam');
document.getElementById('table').innerHTML = '';
div.innerHTML = " Заданных значений в таблице нет ";
return false;
}
document.getElementById('table').innerHTML = '<tr><td>ID</td > <td>Имя</td><td>Количество</td><td>Цена</td><td>Сумма</td> </tr > ';
for (let i = 0; i < myArray.length; i++) {
let summ = myArray[i].quantity * myArray[i].price;
if (startValue == '0' && endValue == '0') {
document.getElementById('table').innerHTML +=
" <tr> <td>" + i + "</td> <td>" + myArray[i].name + "</td> <td>" + myArray[i].quantity + "</td> <td>" + myArray[i].price + "</td> <td>" + summ + "</td> </tr> ";
count++;
}
else if (startValue <= myArray[i].price && myArray[i].price <= endValue) {
document.getElementById('table').innerHTML +=
" <tr> <td>" + i + "</td> <td>" + myArray[i].name + "</td> <td>" + myArray[i].quantity + "</td> <td>" + myArray[i].price + "</td> <td>" + summ + "</td> </tr> ";
count++;
}
}
if (count == '0') {
consoleLog(count);
document.getElementById('table').innerHTML = '';
div.innerHTML = " Заданных значений в таблице нет ";
count++;
}
return false;
}
btn.onclick = function () {
consoleLog();
}