궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
FRONT-END/TIL

[TIL] 230121 filter & includes

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

문제점

오늘은 filter() 메서드와 includes() 메소드를 사용해 함수의 인자값 중 특정한 값을 출력하려고 해 보았다.

function solution(s) {
    let result;

    
}
solution([1, 2, 3, 4, 5]);

시도

우선 filter() 메서드 함수 내부에서 사용해서 일단 인자값을 모두 출력해보고자 했다.

function solution(s) {
    s.filter((value) => console(value));
}
solution([1, 2, 3, 4, 5]);  

//TypeError: console is not a function

콘솔 오류가 났다. 왜냐하면 filter() 메서드는 반드시 이 트러블 객체만 사용가능하기 때문이다.

해결 방법

function solution(...s) {
    s.filter((value) => console.log(value));
}
solution(['1', '2', '3', '4', '5']);

//[ '1', '2', '3', '4', '5' ]

위에선 solution 함수의 인자값을 이터러블 객체로 넣어줬고, 하나하나 빼야 하는데 그것을 빼기 위해선 solution함수의 매개변수에 스프레드 문법을 사용하면 된다.

 

이제 인자값을 하나 하나 빼줬으니 '2'를 제외한 나머지는 버리고 인자값에 2가 있으면 그 값만 return 해보자.

function solution(...s) {
    let num = s.filter((value) => value.includes(2));
    console.log(num);
}
solution('1', '2', '3', '4', '5');

includes() 메서드를 이용해서 2가 함수 인자값에 있으면 그 값만 빼주면 되는 것인데, 위에서 인자값은 배열 안에 값이 있었고, 지금은 인자값에 배열이 존재하지 않는다.

 

함수의 매개변수에  스프레드를 사용하면 인자값을 배열로 만들어주기 때문에 이점을 유의해야 했다. 그래서 최종적으로 [ '2' ] 만 리턴하게 되었다.

'FRONT-END > TIL' 카테고리의 다른 글

[TIL] 230123 class #1  (0) 2023.01.24
[TIL] 230122 String, toString  (0) 2023.01.23
[TIL] 230120 데이터 타입  (1) 2023.01.21
[TIL] 230115 JWT, 쿠키, 세션  (1) 2023.01.16
[TIL] 230114 Git  (1) 2023.01.15

잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.