Телеграм бот на Node.js, выводящий смс юзеров периодически - Баг в одном участке кода

всем привет )

бот написан с использованиям telegraf js сначала напишу код и опишу где баг и в чем проблема, ко всем участкам кода прикрепляю коментарии для ясности

const arr = [];

bot.use(async (ctx, next) => { // бот на фоне работает и проверяет некоторые условия
  await next()  //next() запуск кода который ниже 

  if (ctx.message !== undefined) {  // если юзер написал смс в чат 
    arr.push(ctx.message.text) //запихиваем его смс в масив
    console.log(arr)

    if (arr.length % 10 == 0) {  //если в нашем масиве больше 10ти смс, бот выводит 1 смс рандомно из етих 10ти 
      ctx.reply(randomGreetings(arr)) // randomGreetings функция рандомно извлекающая елемент масива, бот пишет в групу ету смс 
    
    } else if (arr.length >= 1000) {  
      while (arr.length) { arr.pop(); }// если в масиве больше 1000 смс, очистить масив 
    }
  }

  // далее будет баг 
  for (element of arr) {  // перебор машего масива с смсками
    var questionSim = /[?]/i; 
    var matches_array = element.match(questionSim); 

    if (matches_array != null) {  // если один из елементов содержит "?"
      console.log(matches_array)
      console.log(arr)
      ctx.reply("вы написали - ?") // выводим смс, бот пишет в групу ету смс
 
      if (element.search(questionSim) != -1) { 
        console.log("знак вопроса найден")
      }
    }
  }
})

// проблема следующая, так как в масив записался знак вопроса, чтобы дальше не писал юзер, будем выполняться етот участок 
ctx.reply("вы написали - ?")


так как знак вопроса в масиве есть, даже если его раз написать , проверка будет постоянно его находить по новой, нужно как то вывести смс и после удалить етот елемент, чтобы проверка на ? сохранилась но не виводила каждый раз смс. Так жде для ясности зачем вообше данный код и дополнительный вопрос, бот таким образом переодически будет писать в чат от себя смс взяв их от смс юзеров, далее планируеться улучшить систему для более умного отбора, но для начала топорный вариант рандомных смс, тоесть это бот для общения в групах, доп вопрос, как можно улучшить код, возможно кто то подобную задачу уже решал :)

пример выполнения, раз написали ? - и каждое следующие добавления в масив сопровождается проверкой на ? и выводом нашей смс


Ответы (0 шт):