Array destructuring(배열구조 분해할당)

이진우·2023년 12월 4일
0

프로그래머스에서 배열관련 문제를 풀다가 처음사용해본 기능을 사용해보았다

  1. players, callings 두개의 배열제공
  2. callings 있는 선수 순서대로 players의 배열의 선수가 1칸씩 앞으로 땡겨진다
function solution(players, callings) {
    var answer = players;
    
    for (let i = 0; i < callings.length; i++) {
        let overtakingIdx = players.indexOf(callings[i]);
        [answer[overtakingIdx - 1], answer[overtakingIdx]] = [answer[overtakingIdx], answer[overtakingIdx - 1]]
    }
    
    return answer;
}
  1. calling의 길이를 체크해서 해설진의 호출횟수를 정한다(이 횟수만큼만 배열이 변하기 때문)
  2. 첫번째부터 호출 선수의 인덱스를 indexOf함수로 players배열에서 찾는다
  3. index값과 index-1값을 서로 바꿔준다(추월할 경우만 callings배열에 들어있으니 players맨앞에 추월선수가 있을확률은 배제)

문제풀이 과정을 생각해보았을때 splice나 slice로 배열에서 삭제 후 다시 채워넣는 방법보다 쉽게 해결 할 수 있는방법을찾다가
배열구조 분해할당으로 answer배열에 내가 교체를 원하는 배열값과 재할당할 값을 넣어서 손쉽게 풀이하였다.

let array = [1, 3, 5, 7];
[array[1], array[2]] = [8, 9];
console.log(array) // [1, 8, 9, 7]

보통 객체의 구조분해할당을 자주써서 배열은 처음사용해보아서 정리해보았다

profile
초보개발자의 개발일기

0개의 댓글