2023-12-09 18:42:21 +08:00
< p > Given an integer array < code > arr< / code > and a filtering function < code > fn< / code > , return a filtered array < code > filteredArr< / code > .< / p >
2023-04-14 14:39:57 +08:00
2023-12-09 18:42:21 +08:00
< p > The < code > fn< / code > function takes one or two arguments:< / p >
< ul >
< li > < code > arr[i]< / code > - number from the < code > arr< / code > < / li >
< li > < code > i< / code > - index of < code > arr[i]< / code > < / li >
< / ul >
< p > < code > filteredArr< / code > should only contain the elements from the < code > arr< / code > for which the expression < code > fn(arr[i], i)< / code > evaluates to a < strong > truthy< / strong > value. A < strong > truthy< / strong > value is a value where < code > Boolean(value)< / code > returns < code > true< / code > .< / p >
2023-04-14 14:39:57 +08:00
< p > Please solve it without the built-in < code > Array.filter< / code > method.< / p >
< p > < / p >
< p > < strong class = "example" > Example 1:< / strong > < / p >
< pre >
< strong > Input:< / strong > arr = [0,10,20,30], fn = function greaterThan10(n) { return n > 10; }
< strong > Output:< / strong > [20,30]
< strong > Explanation:< / strong >
const newArray = filter(arr, fn); // [20, 30]
The function filters out values that are not greater than 10< / pre >
< p > < strong class = "example" > Example 2:< / strong > < / p >
< pre >
< strong > Input:< / strong > arr = [1,2,3], fn = function firstIndex(n, i) { return i === 0; }
< strong > Output:< / strong > [1]
< strong > Explanation:< / strong >
fn can also accept the index of each element
In this case, the function removes elements not at index 0
< / pre >
< p > < strong class = "example" > Example 3:< / strong > < / p >
< pre >
< strong > Input:< / strong > arr = [-2,-1,0,1,2], fn = function plusOne(n) { return n + 1 }
< strong > Output:< / strong > [-2,0,1,2]
< strong > Explanation:< / strong >
Falsey values such as 0 should be filtered out
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 0 < = arr.length < = 1000< / code > < / li >
2023-12-09 18:42:21 +08:00
< li > < code > -10< sup > 9< / sup > < = arr[i] < = 10< sup > 9< / sup > < / code > < / li >
2023-04-14 14:39:57 +08:00
< / ul >