Ну может кто поймет  
	
const factBlocks = document.querySelectorAll('.fact_block');
const limitationElement = document.querySelector('.limitation');
const endBlock = document.querySelector('.fact_end');
const blocks = Array.from(factBlocks);
function getShownBlocksData() {
  const shownBlocksData = localStorage.getItem('shownBlocks');
  return shownBlocksData ? JSON.parse(shownBlocksData) : { blocks: [], lastGenerationTime: null };
}
function saveShownBlock(blockId) {
  const shownBlocksData = getShownBlocksData();
  shownBlocksData.blocks.push(blockId);
  shownBlocksData.lastGenerationTime = new Date().toISOString();
  localStorage.setItem('shownBlocks', JSON.stringify(shownBlocksData));
}
function removeShowClass() {
  blocks.forEach(block => block.classList.remove('show'));
  limitationElement.classList.remove('show');
}
function shouldShowLimitation() {
  const shownBlocksData = getShownBlocksData();
  if (shownBlocksData.lastGenerationTime) {
    const lastUpdateTime = new Date(shownBlocksData.lastGenerationTime);
    const currentTime = new Date();
    const timeDiff = currentTime - lastUpdateTime;
    return timeDiff < 2000;
  }
  return false;
}
function showRandomBlock() {
  const shownBlocksData = getShownBlocksData();
  const shownBlocks = shownBlocksData.blocks;
  const availableBlocks = blocks.filter(block => !shownBlocks.includes(block.id));
  if (shouldShowLimitation()) {
    limitationElement.classList.add('show');
    if (shownBlocks.length > 0) {
      const lastShownBlockId = shownBlocks[shownBlocks.length - 1];
      const lastShownBlock = blocks.find(block => block.id === lastShownBlockId);
      if (lastShownBlock) {
        lastShownBlock.classList.add('show');
      }
    }
    return;
  }
  if (availableBlocks.length === 0) {
    endBlock.classList.add('show');
  } else {
    const randomBlock = availableBlocks[Math.floor(Math.random() * availableBlocks.length)];
    randomBlock.classList.add('show');
    saveShownBlock(randomBlock.id);
  }
}
removeShowClass();
showRandomBlock();
function updateMiniPicturesClass() {
  // Получаем уже показанные номера из localStorage
  const shownBlocksData = getShownBlocksData();
  const shownBlocks = shownBlocksData.blocks;
  // Перебираем все миниатюры
  shownBlocks.forEach(index => {
    // Форматируем ID, добавляя ведущие нули к номеру
    const miniId = `mini_${index.toString().padStart(4, '0')}`;
    const miniElement = document.getElementById(miniId);
    // Если элемент найден, меняем его класс
    if (miniElement) {
      miniElement.classList.remove('fact_picture_mini');
      miniElement.classList.add('fact_picture_mini_curr');
    }
  });
}
updateMiniPicturesClass();
function changeClass() {
  let currentBlock = document.querySelector('.current');
  currentBlock.classList.add('close');
}
let closeButton = document.querySelector('.close_curr');
closeButton.addEventListener('click', changeClass);
Он вот как работает 1. const factBlocks = document.querySelectorAll('.fact\_block'); - Этот код выбирает все элементы с классом 'fact_block' на веб-странице. 2. const limitationElement = document.querySelector('.limitation'); - Этот код выбирает элемент с классом 'limitation'. 3. const endBlock = document.querySelector('.fact\_end'); - Этот код выбирает элемент с классом 'fact_end'. 4. const blocks = Array.from(factBlocks); - Этот код преобразует выбранные элементы в массив. 5. function getShownBlocksData() { - Эта функция получает данные о показанных блоках из localStorage. Если данные не найдены, она возвращает пустой объект. 6. function saveShownBlock(blockId) { - Эта функция сохраняет id текущего блока в localStorage. 7. function removeShowClass() { - Эта функция удаляет класс 'show' со всех блоков и элемента 'limitation'. 8. function shouldShowLimitation() { - Эта функция определяет, следует ли показывать элемент 'limitation'. Она проверяет, прошло ли более 2 секунд с момента последнего обновления. 9. function showRandomBlock() { - Эта функция показывает случайный блок, который еще не был показан. Если элемент 'limitation' должен быть показан, он также добавляется в класс 'show'. 10. removeShowClass(); - Эта строка кода вызывает функцию removeShowClass(), чтобы удалить класс 'show' со всех блоков и элемента 'limitation'. 11. showRandomBlock(); - Эта строка кода вызывает функцию showRandomBlock(), чтобы показать случайный блок. 12. function updateMiniPicturesClass() { - Эта функция обновляет классы миниатюр, чтобы показать, какие блоки уже были показаны. 13. updateMiniPicturesClass(); - Эта строка кода вызывает функцию updateMiniPicturesClass(), чтобы обновить классы миниатюр. 14. function changeClass() { - Эта функция меняет класс текущего блока на 'close'. 15. let closeButton = document.querySelector('.close\_curr'); - Эта строка кода выбирает элемент с классом 'close_curr'. 16. closeButton.addEventListener('click', changeClass); - Эта строка кода добавляет обработчик событий на элемент 'close_curr', который вызывает функцию changeClass() при клике  | 
	
		
 И нужно  
	У меня есть несколько блоков с классом fact_picture_mini и несколько блоков с классом нужно fact_curr. Нужно чтобы при клике на блок с классом fact_picture_mini нужно чтобы к блоку с классом fact_curr присвоился класс show. ... ВОТ ТУТ НАДО КАК ТО НАХОДИТЬ ПО ИДЕНТИЧНОМУ АЙДИ Если пользователь кликает на другой блок fact_picture_mini то тому что было присвоен класс show, удалить этот класс show.  | 
	
		
 Кликнув куда то сюда  
	<div class="fact_picture_mini" id="mini_fact_0000"> <img src="picture/plane_0.jpg" width="100%" alt=""> </div> <div class="fact_picture_mini" id="mini_fact_0001"> <img src="picture/plane_1.jpg" width="100%" alt=""> </div> открылся какой то из этих <div class="fact_curr" id="curr_0000"> <div class="fact_title"> <p>1 факт</p> <p>Лобовое стекло кабины Boeing 747-400</p> </div> <div class="fact_content"> Одно лобовое стекло или оконная рама кабины Boeing 747-400 стоят столько же, сколько автомобиль BMW </div> <div class="fact_picture"> <img src="picture/plane_0.jpg" alt=""> </div> <div class="fact_source"> <a href="https://novate.ru/blogs/180316/35535/" target="_parent">Источник</a> </div> </div> <div class="fact_curr" id="curr_0001"> <div class="fact_title"> <p>2 факт</p> <p>Инверсионный след</p> </div> <div class="fact_content"> Инверсионный след, который самолеты оставляют позади себя, состоит из водяного пара. Тонкий след говорит о том, что сейчас низкая влажность воздуха и ясная погода. А толстый, более длинный след может являться ранним признаком шторма. </div> <div class="fact_picture"> <img src="picture/plane_1.jpg" alt=""> </div> <div class="fact_source"> <a href="https://novate.ru/blogs/180316/35535/" target="_parent">Источник</a> </div> </div> то есть по айди где цифры 0000, 0001 идентичны друг другу  | 
	
		
 Решил задачу 
	 | 
| Часовой пояс GMT +3, время: 03:22. |