Mestniydevil
@Mestniydevil

Как сравнить две длины массива?

Как сравнить две длины массива и выполнить функцию? Есть два массива если в двух массивах длина больше одного то выполняется функция, если в каком то из них длина становится ровна 0 остановить запущенную !!! И все это должно работать в setInterval, что бы при изменение отрабатывала та, или иная функция. Как данное можно сделать?

function start() {
document.getElementById('ok').innerHTML = '<div>Длина двух массивов больше 0</div>'
//Функция запуска
}
function stop() {
document.getElementById('ok').innerHTML = '<div>Какойто из массивов равен 0</div>'
// Остановить  запущенную функцию если какой-то из счетчиков стал равен "0" 
//и ждать изменения если оба счётчика станут равны больше "0" 
}

function liki() {
    const ids = [...document.querySelectorAll('#user uidm')].map(uidm => uidm.attributes.uid.value);
    const idss = [...document.querySelectorAll('#user uid')].map(uid => uid.attributes.uid.value);
    if (ids.length > 0 && idss.length > 0) {
        start();
    } else {
        stop();
    }
}}
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
Mestniydevil
@Mestniydevil Автор вопроса
Решение
function liki() {
    const ids = [...document.querySelectorAll('#user uidm')].map(uidm => uidm.attributes.uid.value);
    const idss = [...document.querySelectorAll('#user uid')].map(uid => uid.attributes.uid.value);
    if (ids.length > 0 && idss.length > 0) {
        status = 'on'
    }else {
        status ='off'
    }
    if(status==='on') {
        start();
    }
}
setInterval(liki,100);
    let timer = 1000;
    let timenull = null;
    function start() {
        if (!timenull) {
            console.log('запущенно')
        }
        clearTimeout(timenull);
        timenull = setTimeout(stop, timer);
    }
    function stop() {
        timenull = null;
        console.log('Не запущенно');
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@StockholmSyndrome
//и ждать изменения если оба счётчика станут равны больше "0"

так равны или больше?

и в чём проблема поместить всё это в setInterval?
let one = [...document.querySelectorAll('#user uidm')].map(uidm => uidm.attributes.uid.value);
let two = [...document.querySelectorAll('#user uid')].map(uid => uid.attributes.uid.value);
let ok = document.getElementById('ok');

function start() {
  ok.innerHTML = '<div>Длина двух массивов больше 0</div>'
}

function stop() {
  ok.innerHTML = '<div>Какойто из массивов равен 0</div>'
}

setInterval(() => {
  if (one.length > 0 && two.length > 0) {
    start();
  } else {
    stop();
  }  
}, 1000);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы