7 kyu

Coding Meetup #2 - Higher-Order Functions Series - Greet developers

10,476 of 12,517PiotrBerebecki

Description:

You will be given an array of objects (associative arrays in PHP, tables in COBOL) representing data about developers who have signed up to attend the next coding meetup that you are organising.

Your task is to return an array where each object will have a new property 'greeting' with the following string value:

Hi < firstName here >, what do you like the most about < language here >?

For example, given the following input array:

var list1 = [
  { firstName: 'Sofia', lastName: 'I.', country: 'Argentina', continent: 'Americas', age: 35, language: 'Java' },
  { firstName: 'Lukas', lastName: 'X.', country: 'Croatia', continent: 'Europe', age: 35, language: 'Python' },
  { firstName: 'Madison', lastName: 'U.', country: 'United States', continent: 'Americas', age: 32, language: 'Ruby' } 
];
list1 = [
  { firstName: 'Sofia', lastName: 'I.', country: 'Argentina', continent: 'Americas', age: 35, language: 'Java' },
  { firstName: 'Lukas', lastName: 'X.', country: 'Croatia', continent: 'Europe', age: 35, language: 'Python' },
  { firstName: 'Madison', lastName: 'U.', country: 'United States', continent: 'Americas', age: 32, language: 'Ruby' } 
]
$list1 = [
  [
    "first_name" => "Sofia",
    "last_name" => "I.",
    "country" => "Argentina",
    "continent" => "Americas",
    "age" => 35,
    "language" => "Java"
  ],
  [
    "first_name" => "Lukas",
    "last_name" => "X.",
    "country" => "Croatia",
    "continent" => "Europe",
    "age" => 35,
    "language" => "Python"
  ],
  [
    "first_name" => "Madison",
    "last_name" => "U.",
    "country" => "United States",
    "continent" => "Americas",
    "age" => 32,
    "language" => "Ruby"
  ]
];
list1 = [
  { 'firstName': 'Sofia', 'lastName': 'I.', 'country': 'Argentina', 'continent': 'Americas', 'age': 35, 'language': 'Java' },
  { 'firstName': 'Lukas', 'lastName': 'X.', 'country': 'Croatia', 'continent': 'Europe', 'age': 35, 'language': 'Python' },
  { 'firstName': 'Madison', 'lastName': 'U.', 'country': 'United States', 'continent': 'Americas', 'age': 32, 'language': 'Ruby' } 
]
       01  List.
          03 ListLength       pic 9(3) value 3.
          03  dev1.
              05 FirstName    pic a(9)  value 'Sofia'.
              05 LastName     pic x(2)  value 'I.'.
              05 Country      pic a(24) value 'Argentina'.
              05 Continent    pic a(8)  value 'Americas'.
              05 Age          pic 9(3)  value 35.
              05 Language     pic a(10) value 'Java'.
          03  dev2.
              05 FirstName    pic a(9)  value 'Lukas'.
              05 LastName     pic x(2)  value 'X.'.
              05 Country      pic a(24) value 'Croatia'.
              05 Continent    pic a(8)  value 'Europe'.
              05 Age          pic 9(3)  value 75.
              05 Language     pic a(10) value 'Python'.
          03  dev3.
              05 FirstName    pic a(9)  value 'Madison'.
              05 LastName     pic x(2)  value 'U.'.
              05 Country      pic a(24) 
                              value 'United States of America'.
              05 Continent    pic a(8)  value 'Americas'.
              05 Age          pic 9(3)  value 32.
              05 Language     pic a(10) value 'Ruby'.

your function should return the following array:

[
  { firstName: 'Sofia', lastName: 'I.', country: 'Argentina', continent: 'Americas', age: 35, language: 'Java',
    greeting: 'Hi Sofia, what do you like the most about Java?'
  },
  { firstName: 'Lukas', lastName: 'X.', country: 'Croatia', continent: 'Europe', age: 35, language: 'Python',
    greeting: 'Hi Lukas, what do you like the most about Python?'
  },
  { firstName: 'Madison', lastName: 'U.', country: 'United States', continent: 'Americas', age: 32, language: 'Ruby',
    greeting: 'Hi Madison, what do you like the most about Ruby?'
  } 
];
[
  { firstName: 'Sofia', lastName: 'I.', country: 'Argentina', continent: 'Americas', age: 35, language: 'Java',
    greeting: 'Hi Sofia, what do you like the most about Java?'
  },
  { firstName: 'Lukas', lastName: 'X.', country: 'Croatia', continent: 'Europe', age: 35, language: 'Python',
    greeting: 'Hi Lukas, what do you like the most about Python?'
  },
  { firstName: 'Madison', lastName: 'U.', country: 'United States', continent: 'Americas', age: 32, language: 'Ruby',
    greeting: 'Hi Madison, what do you like the most about Ruby?'
  } 
]
[
  [
    "first_name" => "Sofia",
    "last_name" => "I.",
    "country" => "Argentina",
    "continent" => "Americas",
    "age" => 35,
    "language" => "Java",
    "greeting" => "Hi Sofia, what do you like the most about Java?"
  ],
  [
    "first_name" => "Lukas",
    "last_name" => "X.",
    "country" => "Croatia",
    "continent" => "Europe",
    "age" => 35,
    "language" => "Python",
    "greeting" => "Hi Lukas, what do you like the most about Python?"
  ],
  [
    "first_name" => "Madison",
    "last_name" => "U.",
    "country" => "United States",
    "continent" => "Americas",
    "age" => 32,
    "language" => "Ruby",
    "greeting" => "Hi Madison, what do you like the most about Ruby?"
  ]
]
[
  { 'firstName': 'Sofia', 'lastName': 'I.', 'country': 'Argentina', 'continent': 'Americas', 'age': 35, 'language': 'Java',
    'greeting': 'Hi Sofia, what do you like the most about Java?'
  },
  { 'firstName': 'Lukas', 'lastName': 'X.', 'country': 'Croatia', 'continent': 'Europe', 'age': 35, 'language': 'Python',
    'greeting': 'Hi Lukas, what do you like the most about Python?'
  },
  { 'firstName': 'Madison', 'lastName': 'U.', 'country': 'United States', 'continent': 'Americas', 'age': 32, 'language': 'Ruby',
    'greeting': 'Hi Madison, what do you like the most about Ruby?'
  } 
]
       01  List.
          03 ListLength       pic 9(3) value 3.
          03  dev1.
              05 FirstName    pic a(9)  value 'Sofia'.
              05 LastName     pic x(2)  value 'I.'.
              05 Country      pic a(24) value 'Argentina'.
              05 Continent    pic a(8)  value 'Americas'.
              05 Age          pic 9(3)  value 35.
              05 Language     pic a(10) value 'Java'.
              05 Greeting     pic x(55) value 
                'Hi Sofia, what do you like the most about Java?'.
          03  dev2.
              05 FirstName    pic a(9)  value 'Lukas'.
              05 LastName     pic x(2)  value 'X.'.
              05 Country      pic a(24) value 'Croatia'.
              05 Continent    pic a(8)  value 'Europe'.
              05 Age          pic 9(3)  value 75.
              05 Language     pic a(10) value 'Python'.
              05 Greeting     pic x(55) value 
                'Hi Lukas, what do you like the most about Python?'.
          03  dev3.
              05 FirstName    pic a(9)  value 'Madison'.
              05 LastName     pic x(2)  value 'U.'.
              05 Country      pic a(24) 
                              value 'United States of America'.
              05 Continent    pic a(8)  value 'Americas'.
              05 Age          pic 9(3)  value 32.
              05 Language     pic a(10) value 'Ruby'.
              05 Greeting     pic x(55) value 
                'Hi Madison, what do you like the most about Ruby?'.

Notes:

  • The order of the properties in the objects does not matter (except in COBOL).
  • The input array will always be valid and formatted as in the example above.




This kata is part of the Coding Meetup series which includes a number of short and easy to follow katas which have been designed to allow mastering the use of higher-order functions. In JavaScript this includes methods like: forEach, filter, map, reduce, some, every, find, findIndex. Other approaches to solving the katas are of course possible.

Here is the full list of the katas in the Coding Meetup series:

Coding Meetup #1 - Higher-Order Functions Series - Count the number of JavaScript developers coming from Europe

Coding Meetup #2 - Higher-Order Functions Series - Greet developers

Coding Meetup #3 - Higher-Order Functions Series - Is Ruby coming?

Coding Meetup #4 - Higher-Order Functions Series - Find the first Python developer

Coding Meetup #5 - Higher-Order Functions Series - Prepare the count of languages

Coding Meetup #6 - Higher-Order Functions Series - Can they code in the same language?

Coding Meetup #7 - Higher-Order Functions Series - Find the most senior developer

Coding Meetup #8 - Higher-Order Functions Series - Will all continents be represented?

Coding Meetup #9 - Higher-Order Functions Series - Is the meetup age-diverse?

Coding Meetup #10 - Higher-Order Functions Series - Create usernames

Coding Meetup #11 - Higher-Order Functions Series - Find the average age

Coding Meetup #12 - Higher-Order Functions Series - Find GitHub admins

Coding Meetup #13 - Higher-Order Functions Series - Is the meetup language-diverse?

Coding Meetup #14 - Higher-Order Functions Series - Order the food

Coding Meetup #15 - Higher-Order Functions Series - Find the odd names

Coding Meetup #16 - Higher-Order Functions Series - Ask for missing details

Data Structures
Fundamentals
Algorithms
Strings
Regular Expressions
Arrays
Functional Programming

Stats:

CreatedNov 12, 2016
PublishedNov 12, 2016
Warriors Trained15427
Total Skips324
Total Code Submissions34656
Total Times Completed12517
JavaScript Completions10476
PHP Completions312
Ruby Completions167
Python Completions1706
COBOL Completions8
Total Stars171
% of votes with a positive feedback rating94% of 1780
Total "Very Satisfied" Votes1597
Total "Somewhat Satisfied" Votes161
Total "Not Satisfied" Votes22
Total Rank Assessments8
Average Assessed Rank
7 kyu
Highest Assessed Rank
7 kyu
Lowest Assessed Rank
8 kyu
Ad
Contributors
  • PiotrBerebecki Avatar
  • donaldsebleung Avatar
  • narayanswa30663 Avatar
  • homo_developus Avatar
  • albertogcmr Avatar
  • ejini战神 Avatar
  • akar-0 Avatar
  • dfhwze Avatar
  • infinitesolargalaxy Avatar
Ad