DEV Community

Madalina Pastiu
Madalina Pastiu

Posted on

Categorize New Member

Instructions:

The Western Suburbs Croquet Club has two categories of membership, Senior and Open. They would like your help with an application form that will tell prospective members which category they will be placed.

To be a senior, a member must be at least 55 years old and have a handicap greater than 7. In this croquet club, handicaps range from -2 to +26; the better the player the lower the handicap.

Input
Input will consist of a list of pairs. Each pair contains information for a single potential member. Information consists of an integer for the person's age and an integer for the person's handicap.

Output
Output will consist of a list of string values (in Haskell and C: Open or Senior) stating whether the respective member is to be placed in the senior or open category.

Example
input = [[18, 20], [45, 2], [61, 12], [37, 6], [21, 21], [78, 9]]
output = ["Open", "Open", "Senior", "Open", "Open", "Senior"]

Thoughts 1:

1.I use a for loop to loop through the array and use if/else statement to determine if the member is a senior or open.

Solution 1:

function openOrSenior(data){
  let output=[];
  for(let i =0; i<data.length; i++){
  if(data[i][0] >= 55 && data[i][1] > 7) output.push('Senior') ;
  else output.push("Open");
  }
    return output;   
}
Enter fullscreen mode Exit fullscreen mode

Thoughts 2:

1.As soon as I finish the challenge I got the idea of refactoring my code.
2.In this new solution I used the map() function on the data and work with each inner array to determine, using the same conditions, if the member is a senior or an open.

Solution 2:

function openOrSenior(data){
  const outputData = data.map(arr => arr[0] >= 55 && arr[1] > 7 ? 'Senior' : "Open");
    return outputData;   
}
Enter fullscreen mode Exit fullscreen mode

This is a CodeWars Challenge of 7kyu Rank

Top comments (0)