문제
Given an integer array arr and a filtering function fn, return a filtered array filteredArr.
The fn function takes one or two arguments:
- arr[i] - number from the arr
- i - index of arr[i]
filteredArr should only contain the elements from the arr for which the expression fn(arr[i], i) evaluates to a truthy value. A truthy value is a value where Boolean(value) returns true.
Please solve it without the built-in Array.filter method.
https://leetcode.com/problems/filter-elements-from-array/
예시
직접 filter 함수를 구현하면 된다. array를 돌면서 fn의 함수에 true가 나오는 값만 얕은 복사하여 새로운 배열을 만들어 준다.
코드
type Fn = (n: number, i: number) => any
function filter(arr: number[], fn: Fn): number[] {
let newArr = [];
arr.forEach((number, idx)=>{
if(fn(number, idx)){
newArr.push(number);
}
});
return newArr;
};
리턴할 새로운 배열인 newArr를 만들고, arr를 돌면서 fn의 결과가 true인 원소만 newArr에 추가해주었다.
728x90
'Algorithm > leetcode' 카테고리의 다른 글
[leetcode][JS] 2648. Generate Fibonacci Sequence (0) | 2024.01.25 |
---|---|
[leetcode][JS] 2635. Apply Transform Over Each Element in Array (0) | 2024.01.23 |
[leetcode][JS] 2629. Function Composition (0) | 2024.01.22 |
[leetcode][JS] 2626. Array Reduce Transformation (0) | 2024.01.18 |
[leetcode][JS] 2621. Sleep (0) | 2024.01.17 |