* Add a solution for Finders Keepers challenge * Update link to markdown * fix: removed repl.it link * fix: made this the Intermediate Solution * fix: added correct Intermediate icon
3.6 KiB
3.6 KiB
title
title |
---|
Finders Keepers |
Remember to use
Read-Search-Ask
if you get stuck. Try to pair program and write your own code
Problem Explanation:
We need to return the element from an array that passes a function. Both the function
and the array
are passed into our function findElement(arr, func)
.
Hint: 1
Looking through the array can be done with a for
loop.
try to solve the problem now
Hint: 2
num
is passed to the function. We will need to set it to the elements we want to check with the function.
try to solve the problem now
Hint: 3
Do not forget, if none of the numbers in the array pass the test, it should return undefined
.
try to solve the problem now
Basic Code Solution:
function findElement(arr, func) {
let num = 0;
for(var i = 0; i < arr.length; i++) {
num = arr[i];
if (func(num)) {
return num;
}
}
return undefined;
}
Code Explanation
- Challenge asks us to look through array. This is done using a
for
loop. - The
num
variable is being passed into the function, so we set it to each index in our array. - The pre-defined function already checks each number for us, so if it is "true", we return that num.
- If none of the numbers in the array pass the function's test, we return undefined.
Intermediate Code Solution:
function findElement(arr, func) {
return arr.find(func);
}
Relevant Links
Advanced Code Solution:
function findElement(arr, func) {
return arr[(arr.map(func)).indexOf(true)];
}
Code Explanation
- Look through the array given in the 1st paramater "arr" using the .map() method
- Use the function in the 2nd parameter as the callback function in arr.map()
- Acquire the index of the first number that meets the condition in the function.
- Use that index to display the first available number that meets the condition.