@WebNerd
It's time to hunt

Как JS понял, что нужно поменять именно исходный массив?

Есть сортировка пузырьком. Не до конца понимаю, как Js на основании таких данных - [array[j], array[j+1]] = [array[j+1], array[j]]; понял, что нужно поменять именно в массиве arr числа местами. Я знаю, что такое деструктуризация массива, но в данном примере не очень понял, как работает.

let arr = [65,2,10,1,3,8];


const bubbleSort = (array) => {

  for (let i = 0; i < array.length - 1; i++) {
    for (let j = 0; j < array.length - 1; j++) {
      if (array[j] > array[j + 1]) {
        [array[j], array[j+1]] = [array[j+1], array[j]];
      }
    }
  }
};

bubbleSort(arr)
  • Вопрос задан
  • 327 просмотров
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Так как тут отсутствуют ключевые слова для объявления переменных, типа let\const, то элементы внутри деструктуризации начинают работать как переменные текущего окружения.
То есть [array[j], array[j+1]] = [array[j+1], array[j]]; разворачивается в
array[j] = array[j+1]
array[j+1] = array[j]

как Js понял, что нужно поменять именно в массиве arr числа местами.

Ну а так как array это ссылка на arr, вот и поменял.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@HarrySto
Вы слышали что-то про сервисы AppRefactoring и Code Scene? Они очень пригодятся для анализа кода
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы