Короткие заметки о JavaScript и маленькие программки.
Обмен значениями

Конспект
✍️swap(a, b) переносит значение из a в b и из b в a
✍️Обычный подход — использовать три переменные
✍️Хитрость — достаточно двух переменных

Лекция
До сих пор мы только присваивали значения переменным, и казалось, что ничего интересного сделать нельзя. Но есть известная задача: как обменять значения двух переменных? Это важная часть сортировочных алгоритмов. Попробуйте подумать. У вас есть две переменные:
let a = 5, b = 8;
...
console.log("a=", a, "b=", b);

Ваша задача — вставить код вместо ..., чтобы вывод был: a=8, b=5. Разумеется, решение должно быть универсальным и использовать присваивания между переменными. Учтите, что выражения a = b или b = a сразу портят игру: одно из значений теряется. Избежать этой ловушки можно, введя третью переменную. Попробуйте написать свою программу и протестировать её в консоли браузера.

Получившийся код — известная функция «swap», которую можно встретить в библиотеках. Более сложная и менее известная задача — обменять значения без введения третьей переменной. Здесь можно подумать о других операциях, кроме чистого присваивания.

Если застряли, загляните на наш GitHub: three, minus и xor. Также можно поиграть в наш симулятор обмена «ref».

#education #devJS #devTopic #junior