@dmitriyivvvv

Порядок в деструктурирующем присваивании?

Добрый вечер! Объясните в каком порядке выполняются действия в данном отрезке кода:
[arr[i], arr[j]] = [arr[j++], arr[i--]];
Допустим что i = 3, j = 4;
Желательно поподробнее.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
potapchino
@potapchino
var arr = [1,2,3,4,5,6,7,8]
var i = 3
var j = 4

console.log(arr); // [1,2,3,4,5,6,7,8]
[arr[i], arr[j]] = [arr[j++], arr[i--]];
console.log(arr); // [1,2,5,4,5,4,7,8]

// #1
// arr[j++]
// j++  вернет 4
// arr[4] вернет 5
// [arr[i], arr[j]] = [5, arr[i--]]

// #2
// arr[i--]
// i--  вернет 3
// arr[3] вернет 4
// [arr[i], arr[j]] = [5, 4]

// #3
// arr[i]
// i вернет 2
// [arr[2], arr[j]] = [5, 4]

// #4
// arr[j]
// j вернет 5
// [arr[2], arr[5]] = [5, 4]

// #5
// выполняем деструктуризацию

// #5.1
// console.log(arr[2]); // 3
// arr[2] = 5
// console.log(arr[2]); // 5

// #5.2
// console.log(arr[5]); // 6
// arr[5] = 4
// console.log(arr[5]); // 4

// #6
// в результате деструктуризации изменили исходный массив:
// [ 1, 2, 5, 4, 5, 4, 7, 8 ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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