 
  
  постоянно натыкаюсь на огромное море текстовой информации
Будьте добры, подскажите книги
сейчас закончил книгу Моргана "JS для детей",
практика там есть, но её небольшое количество.
 
  
  document.querySelector(".button").addEventListener("click", function() {
	this.disabled = true;
}) 
  
  const sortListArr = () => {
  const condition = (newArr[0] > newArr[newArr.length - 1]);
  const sortedArr = newArr.sort((a, b) => a - b);
  sortArr.innerHTML = condition ? sortedArr : sortedArr.reverse();
} 
  
  plseditme элементов. Поэтому нужно использовать рекурсию.function SpaceReplacer() {
  document.getElementById('plseditme').innerHTML = document.getElementById('plseditme').innerHTML
    .replace(/_/gi, ' ')
    .replace(/.exe/gi, '')
    .replace(/.msi/gi, '')
    .replace(/.zip/gi, '')
    .replace(/.txt/gi, '');
  document.getElementById('plseditme').id = 'edited';
  if (document.getElementById('plseditme')) { // Тут проверяем существуют ли элементы
    SpaceReplacer(); // И потом уже вызываем функцию
  }
}const plseditme = document.querySelectorAll('#plseditme');
plseditme.forEach(el => {
  el.innerHTML = el.innerHTML
    .replace(/_/gi, ' ')
    .replace(/.exe/gi, '')
    .replace(/.msi/gi, '')
    .replace(/.zip/gi, '')
    .replace(/.txt/gi, '');
  el.id = 'edited';
}); 
  
   
  
   
  
   
  
  let cat = this.dataset.filter;let cat = this.getAttribute('data-filter');       
  
  themeButton.addEventListener("click", function() {
  console.log('Кнопка нажата!');
}) 
  
  $(function() {
    (function quantityProducts() {
        $(".quantity-arrow-minus").click(quantityMinus);
        $(".quantity-arrow-plus").click(quantityPlus);
      
        function quantityMinus() {
            let currentInput = $(this).parent().find('.quantity-num');
            if (currentInput.val() > 0) {
                currentInput.val(+currentInput.val() - 1);
            }
        }
        function quantityPlus() {
          let currentInput = $(this).parent().find('.quantity-num');
          currentInput.val(+currentInput.val() + 1);
        }
    })();
});$(".quantity-block").each(function() {
  let currentInput = $(this).children('.quantity-num');
  $(this).children('.quantity-arrow-minus').click(function() {
    if (currentInput.val() > 0) {
      currentInput.val(+currentInput.val() - 1);
    }
  });
  $(this).children('.quantity-arrow-plus').click(function() {
    currentInput.val(+currentInput.val() + 1);
  });
}); 
  
   
  
  let data = [
  {id: 489, name: "Nickname"},
  {id: 345, name: "Email"}
];<div>
{
  data.map((dat, index) => {
    return (
      <Link>{dat.name}</Link>
    )
  })
}
</div> 
  
   
  
  