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

이진우·2023년 12월 4일

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

  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개의 댓글