리스트 자르기

function solution(n, slicer, num_list) {
let answer = [];
const [a, b, c] = slicer;
if (n === 1) {
return num_list.slice(0, b + 1);
} else if (n === 2) {
return num_list.slice(a);
} else if (n === 3) {
return num_list.slice(a, b + 1);
} else {
for (let i = a; i <= b; i += c) {
answer.push(num_list[i]);
}
return answer;
}
}
중간에 풀 때
if (n = 1), if (n = 2), if (n = 3)
이라고 작성...
할당 연산자를 사용, 조건문 사용법 오류
일치 연산자 사용
if (n === 1), if (n === 2), if (n === 3)
function solution(n, slicer, num_list) {
let [a, b, c] = [...slicer];
switch(n) {
case 1:
return num_list.slice(0, b + 1);
case 2:
return num_list.slice(a);
case 3:
return num_list.slice(a, b + 1);
case 4:
return num_list.slice(a, b + 1).filter((_, idx) => !(idx % c));
}
}
신기하다
const slices = {
1: (num_list, [a, b, c]) => num_list.slice(0, b + 1),
2: (num_list, [a, b, c]) => num_list.slice(a),
3: (num_list, [a, b, c]) => num_list.slice(a, b + 1),
4: (num_list, [a, b, c]) => num_list.slice(a, b + 1).filter((_, i) => i % c === 0),
};
function solution(n, slicer, num_list) {
return slices[n](num_list, slicer);
}
조건문에서는 ==(동등 연산자) 또는 ===(일치 연산자)를 사용하자.