오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
function solution(todo_list, finished) {
const result = [];
for (let i = 0; i < todo_list.length; i++) {
if (!finished[i]) {
result.push(todo_list[i]);
}
}
return result;
}
첫번째 풀이. 정석(?)적으로 빈 배열을 만들고 반복문을 통해 i번째 finished 요소가 false일 경우 해당 i번쨰 todo_list를 push하는 방식을 사용했다.
function solution(todo_list, finished) {
return todo_list.filter((_, idx) => !finished[idx]);
}
두번째 풀이. filter 메서드를 사용할 생각을 자꾸 못하는 걸 보니 더 많은 연습이 필요할 것 같다. 메서드 내 인덱스 인자를 사용하여, idx번째 finished가 false인 요소만 return하도록 했다.