Все, что вам нужно знать о перестановке переменных в JavaScript
Maksym Pohribnyak![](/file/896a569950cc0ec64556b.jpg)
Перестановка двух переменных обычно требует временной переменной или алгоритма обмена XOR, как показано в примере № 2. Мы рассмотрим два типа условий и 5 типов методов замены двух переменных в JavaScript.
- Примеры #2 and #3 применимы, если переменная является типом number;
- Остальные методы работают со всеми типами, такими как:
string
,number
,object
,array
и.т.д
Давайте разберем 5 различных способов обмена двумя переменными в JavaScript. Вот первый.
# 1 Использование временной переменной
![](/file/a268fadbfc672d6478815.jpg)
Вышеупомянутый метод может использоваться для замены двух типов переменных любого типа.
В приведенном выше примере мы создали переменную tmp
для хранения значения x
и присвоения y
к x
, а затем tmp
к x
.
Обмен значениями переменных без временной переменной.
# 2 Обмен с использованием оператора Bitwise XOR
![](/file/929f8f04ead2e2f6514c6.jpg)
Для лучшего понимания обратитесь к этому вики-алгоритму обмена XOR.
Оператор xor в JavaScript преобразует свои операнды в 32-разрядные целые числа (используя внутренний метод ToInt32 - см. Раздел 11.10 стандарта ECMAScript). Он не дает правильных результатов для нецелых числовых значений. Он также преобразует нечисловые значения в 32-разрядные целые числа. Если вы начнете с x = "hi" и y = "there", вы получите x == 0 и y == 0.
# 3 Действительно только для чисел
![](/file/5514c23684a559d76a307.jpg)
Приведенный выше пример действителен только для переменных, которые являются типом number. Убедитесь, что они именно такого типа.
Обмен одной строкой
Здесь я покажу вам пару методов, которые могут поменять переменные любого типа в одной строке.
# 4 Использование массива
![](/file/e5c5cff56c9511d8898aa.jpg)
Используя массив, мы записываем значение x в первым эелементом (с индексом 0), а следующим элементом присваиваем знанчению x - значение переменной y. После, берем первый элемент массива и записываем его значение в переменную y.
# 5 Использование выражения разрушения
Вот мой самый любимый , самый простой и читаемый метод обмена двумя переменными с использованием выражения деструктурирования, посмотрите на пример ниже:
![](/file/14a60f34842bbaedf6da0.jpg)
Но будьте осторожны, он поддерживает только в ES6 и выше.