LeetCode - 2634. Filter Elements from Array

henu·2023년 8월 17일
0

LeetCode

목록 보기
6/186
post-thumbnail

Problem

정수 배열 arr과 필터링 함수 fn가 주어질때, 필터링된 배열 filteredArr를 리턴하라.
fn은 아래와 같은 전달인자를 받는다.

  • arr[i] : arr의 숫자
  • i : arr[i]의 인덱스

filteredArr은 반드시 fn(arr[i], i)에 의해 truthy한 값으로 평가되는 요소들만 포함해야한다.
filter 메소드를 사용하지 않고 해결하라.

Example 1

Input: arr = [0,10,20,30], fn = function greaterThan10(n) { return n > 10; }
Output: [20,30]
Explanation:
const newArray = filter(arr, fn); // [20, 30]
The function filters out values that are not greater than 10

Example 2

Input: arr = [1,2,3], fn = function firstIndex(n, i) { return i === 0; }
Output: [1]
Explanation:
fn can also accept the index of each element
In this case, the function removes elements not at index 0

Example 3

Input: arr = [-2,-1,0,1,2], fn = function plusOne(n) { return n + 1 }
Output: [-2,0,1,2]
Explanation:
Falsey values such as 0 should be filtered out

Solution

var filter = function(arr, fn) {
    const filteredArr = [];

    for(let i=0; i<arr.length; i++) {
        if(fn(arr[i], i)) filteredArr.push(arr[i])
    }

    return filteredArr;
};

Explanation

filter메소드를 사용하지 않고 풀라고 해서 for문을 이용하였다.
fn(arr[i], i)true일 경우에만 filteredArr에 요소를 추가하도록했다.

0개의 댓글