정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/181888
✔️ 배열의 n번째 요소 추출하기
const solution = (num_list, n) => num_list.filter((_, i) => !(i % n));
const solution = (num_list, n) => num_list.filter((_, idx) => idx % n === 0);
The filter() method of Array instances creates a shallow copy of a portion of a given array, filtered down to just the elements from the given array that pass the test implemented by the provided function.
- Array 인스턴스의 filter() 메서드는 주어진 배열의 일부에 대한 얕은 복사본을 생성하고, 주어진 배열에서 제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링 합니다.

다른 사람의 풀이를 확인하면서 !(i % n) 이 부분이 왜 n번째 요소를 추출하는 boolean이 되는지 잘 이해가 되지 않았다.
!(Not)연산자는 falsy한 값에 true를 반환하는데, 그 값이 0인 경우에도 true를 반환한다.
따라서, !(n % 2)는 !(n % 2 === 0)와 같은 의미가 될 수 있다.
false: 직접적으로 false인 경우0: 숫자 0빈 문자열(''): 문자열의 길이가 0인 경우null: 값이 없거나 비어있는 경우undefined: 정의되지 않은 값NaN: 숫자가 아닌 경우 (Not-a-Number)document.all: 이전에 사용되던 오래된 브라우저에서 존재하는 객체로, 불리언으로 평가 시 false가 됨