javascript에서 두 변수를 swap하는 법

‍한승운·2021년 5월 13일
0

javascript

목록 보기
8/10

temp 변수를 이용한 방법

  • 중간 저장 매체인 temp 변수를 만들어 사용
let
  a = 'a',
  b = 'b',
  temp;

temp = a;
a = b;
b = temp;
console.log('a: ' + a + ', b: ' + b); // 'a: "b", b: "a"'

XOR 방법

  • XOR swap algorithm으로 불리는 방법이다.

  • 하지만 Integer일 때만 사용할 수 있는 방법이다.

    • 숫자로 된 문자열이나 실수는 정수로 변환된다.
let
  a = 10, // or '10', 10.11
  b = 100; // or '10', 100.111

a = a ^ b;
b = a ^ b;
a = a ^ b;
console.log('a: ' + a + ', b: ' + b); // 'a: 100, b: 10'

덧셈/뺄셈 연산자를 이용한 방법

let
  a = 10, // or 10.11
  b = 100; // or 100.111

a = a + b;
b = a - b;
a = a - b;
console.log('a: ' + a + ', b: ' + b); // 'a: 100, b: 10'

배열을 이용한 swap

  • 한 줄로 작성 가능한 방법이다.
    • 하지만 읽기 어렵고 가독성이 떨어진다
  • 원리는 배열을 생성할 때 a의 값이 복사가 되고 a = b 연산 실행
    • 그리고 배열의 0번째 값ab에 할당한다. 재밌는 방법이다.
let
  a = 5,
  b = 'abc';

b = [a, a = b][0];
console.log('a: ' + a + ', b: ' + b); // 'a: "abc", b: 5'

구조 분해 할당을 이용한 방법

  • ES6에 추가된 구조 분해 할당(Destructuring_assignment)을 이용해 swap하는 방법이다.
    • 익스플로러에선 지원하지 않지만 많은 사람들이 추천하고 있다!
  • 개인적으로 가장 깔끔하게 사용하고 가독성도 높다.
let
  a = 5,
  b = 'abc';

[a, b] = [b, a]
console.log('a: ' + a + ', b: ' + b); // 'a: "abc", b: 5'
profile
함께 성장하고 싶은 백엔드 개발자

0개의 댓글