프로그래머스에서 배열관련 문제를 풀다가 처음사용해본 기능을 사용해보았다
- players, callings 두개의 배열제공
- 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;
}
문제풀이 과정을 생각해보았을때 splice나 slice로 배열에서 삭제 후 다시 채워넣는 방법보다 쉽게 해결 할 수 있는방법을찾다가
배열구조 분해할당으로 answer배열에 내가 교체를 원하는 배열값과 재할당할 값을 넣어서 손쉽게 풀이하였다.
let array = [1, 3, 5, 7];
[array[1], array[2]] = [8, 9];
console.log(array) // [1, 8, 9, 7]
보통 객체의 구조분해할당을 자주써서 배열은 처음사용해보아서 정리해보았다