Nikolai Kiselev 4bc1d74f2a Add a solution for Finders Keepers challenge (#35655)
* 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
2019-03-23 08:35:58 -07:00

3.6 KiB

title
title
Finders Keepers

:triangular_flag_on_post: Remember to use Read-Search-Ask if you get stuck. Try to pair program :busts_in_silhouette: and write your own code :pencil:

:checkered_flag: 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

:beginner: 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.

:sunflower: Intermediate Code Solution:

function findElement(arr, func) {
  return arr.find(func);
}

:rotating_light: Advanced Code Solution:

function findElement(arr, func) {
 return arr[(arr.map(func)).indexOf(true)];
}

Code Explanation

  1. Look through the array given in the 1st paramater "arr" using the .map() method
  2. Use the function in the 2nd parameter as the callback function in arr.map()
  3. Acquire the index of the first number that meets the condition in the function.
  4. Use that index to display the first available number that meets the condition.

:clipboard: NOTES FOR CONTRIBUTIONS:

  • :warning: DO NOT add solutions that are similar to any existing solutions. If you think it is similar but better, then try to merge (or replace) the existing similar solution.
  • Add an explanation of your solution.
  • Categorize the solution in one of the following categories -- Basic, Intermediate and Advanced. :traffic_light: