[코딩테스트] (JavaScript) n개 간격의 원소들

bien·2024년 1월 10일
0

코딩테스트

목록 보기
1/14

❓ 문제

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

https://school.programmers.co.kr/learn/courses/30/lessons/181888

📋 요구사항 분석

✔️ 배열의 n번째 요소 추출하기


❗️해결법

  • 기존 배열에서 n번째 값만 가져오기

const solution = (num_list, n) => num_list.filter((_, i) => !(i % n));
const solution = (num_list, n) => num_list.filter((_, idx) => idx % n === 0);

📒 Array.prototype.filter

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() 메서드는 주어진 배열의 일부에 대한 얕은 복사본을 생성하고, 주어진 배열에서 제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링 합니다.

📒 !(boolean) && boolean === 0

다른 사람의 풀이를 확인하면서 !(i % n) 이 부분이 왜 n번째 요소를 추출하는 boolean이 되는지 잘 이해가 되지 않았다.

!(Not)연산자는 falsy한 값에 true를 반환하는데, 그 값이 0인 경우에도 true를 반환한다.

따라서, !(n % 2)!(n % 2 === 0)와 같은 의미가 될 수 있다.

falsy 한 값

  • false: 직접적으로 false인 경우
  • 0: 숫자 0
  • 빈 문자열(''): 문자열의 길이가 0인 경우
  • null: 값이 없거나 비어있는 경우
  • undefined: 정의되지 않은 값
  • NaN: 숫자가 아닌 경우 (Not-a-Number)
  • document.all: 이전에 사용되던 오래된 브라우저에서 존재하는 객체로, 불리언으로 평가 시 false가 됨

Refernce

profile
Good Luck!

0개의 댓글