배열의 i번째 숫자부터 j번째 숫자까지 자르고 정렬 후 k번째에 있는 수 구하기
let solution = (arr,comm) => {
let answer = [];
for(let i=0; i<comm.length; i++){
answer.push(arr
.slice(comm[i][0]-1,comm[i][1])
.sort((a,b)=>a-b)[comm[i][2]-1]);
}
return answer;
}
let solution = (arr,comm) => {
let answer = comm.map(([f,t,k]) =>
arr.slice(f-1,t).sort((a,b)=>a-b)[k-1]);
return answer;
}
sort()할 때, 숫자는 유니코드로 정렬되기 때문에 무조건 정렬 함수를 넣어야 한다.
→ 안 넣고 돌리니깐 test 2에서 오류 발생
map()을 사용하면 for 문을 돌리지 않고도 배열을 돌 수 있음
Array.prototype.map
: 배열 내 모든 요소를 순회하며 인수로 전달받은 콜백 함수를 반복 호출하여
새로운 배열로 반환const array1 = [1, 4, 9, 16]; const map1 = array1.map(x => x * 2); console.log(array1); // [1, 4, 9, 16] console.log(map1); // [2, 8, 18, 32]