구조분해할당으로 swap하는 방법을 알아보자.
let [a,b]=[1,2];
console.log(a); // 1
let [a,b]=[1,2];
코드로 a는 1, b는 2가 된다.
let str = "Mike,Jane,Sue";
let arr = str.split(',');
let [user1,user2,user3]=str.split(',');
console.log(arr); // ["Mike","Jane","Sue"]
console.log(user1); // "Mike"
let [user1,user2,user3]=str.split(',');
코드로 user1 = 'Mike', user2 = 'Jane', user3 = 'Sue'가 된다.
기본적인 원리를 이해했으면 swap하는 법을 알아보자.
a = 5;
b = 10;
//원래라면
temp = a; //temp = 5;
a = b;
b = temp;
console.log(a,b); //10,5
//구조분해할당 사용하면
[a,b]=[b,a];
console.log(a,b); //5,10
[a,b]=[b,a];
코드로 a = b, b = a가 되어 swap이 완료된다!
const user1 = {
name : "Yeon",
age : 20,
}
let {name : Username, age, gender ="female"} = user1;
console.log(Username, age, gender); // "Yeon" 20 "female"
배열구조분해와 거의 동일하다.
프로퍼티의 이름은 원하는 것으로 바꿀 수 있고 초기값도 줄 수 있다.
초기값은 해당 프로퍼티가 undefined 일 때만 사용된다는 것을 알아두자.
문제 설명 : 문자열 my_string과 정수 num1, num2가 매개변수로 주어진다. my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 반환하자.
function solution(my_string, num1, num2) {
let answer = my_string.split('');
const temp = my_string.substr(num1,1);
answer[num1] = my_string.substr(num2,1);
answer[num2] = temp;
return answer.join('');
}
위는 가장 흔한 swap방법으로 변수 temp를 사용한 코드이다. 하지만 우리는 구조분해할당을 배웠음으로 구조분해할당을 사용해보자.
function solution(my_string, num1, num2) {
let answer = my_string.split('');
[answer[num1],answer[num2]] = [answer[num2],answer[num1]]
return answer.join('');
}
[answer[num1],answer[num2]] = [answer[num2],answer[num1]]
코드처럼 구조분해할당을 사용하면 쉽게 swap을 처리할 수 있다.
끝😴