배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.
function solution(array, commands) {
var answer = [];
for(let i=0; i<commands.length;i++){
let list = array.slice(commands[i][0]-1, commands[i][1]).sort((a,b) => {
return a-b});
answer.push(list[commands[i][2]-1]);
}
return answer;
}
우선, k값을 배열로 출력해 줄 answer 변수를 설정
for문을 이용해 commands의 길이(i, j, k = 3) 만큼 반복
array에서 i, j, k를 추출하기위해 slice 메소드를 이용해 시작점, 끝점을 자르고 정렬해 줌 sort 메소드를 이용해 오름차순으로 정렬해 준 다음,
push 메소드를 이용해 배열에 answer에 k번째 숫자를 넣어주어 return 출력
<aside> ✅ slice() 메소드 : 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환 (원본 배열은 바뀌지X)
</aside>
<aside> ✅
sort() 메소드 : 배열을 정렬하는 메소드로, primitive타입의 배열이 인자일 때 오름차순으로 정렬해 줌
<aside> ✅ push() 메소드 : 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환
</aside>
참고링크