@NazarJs

При загрузке кода выполняется функция которая указана в addEventListener без клика по кнопке. Как исправить?

при загрузке кода выполняется функция которая указана в addEventListener без клика по кнопке

button.addEventListener('click', users.sort(function(a, b){
    return b.age-a.age
  }))

  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Так ведь передаётся не функция function(){...}, а выражение users.sort(...)
Выражение, которое сразу же выполняется, чтобы получилось значение. И вот это значение будет (?) обработчиком события клика. Т.е. в этом коде предлагается по клику не функцию выполнить, а сортированный массив – даже не знаю, что с ним делать.

Чтобы не сразу, оберните код в .. кхм .. функцию!
button.addEventListener('click', function() {
  users.sort(
    function(a, b){
      return b.age-a.age
    }
  )
});

// или покороче
button.addEventListener('click', () => users.sort((a, b) => b.age - a.age));
Так только по событию клика массив, наконец, отсортируют.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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