#2 Live Kata Report

pixari

Raffaele Pizzari

Posted on February 5, 2020

#2 Live Kata Report

2 Live Kata Report

With the JS Learning community I am running we use to solve "JS Katas" together during "live coding" sessions.
I'll use this blog to share the "Live Kata" reports.

We solved together a "kata" found on "CodeWars.com".

Key takeaway points:

• Learn how String.prototype.slice() works
• Learn how Array.prototype.join() works
• Learn how Array.prototype.reduce() works
• Learn how "Destructuring assignment" works

Docs:

Array.prototype.reduce()
String.prototype.slice()
Array.prototype.join()
Destructuring assignment
• A website full of katas

The Kata is the following:

Requirements:

Move the first letter of each word to the end of it, then add "ay" to the end of the word.

Example

'Pig latin is cool' => igPay atinlay siay oolcay
'Hello world' => elloHay orldway

Our solutions

Solution 1

function doKata(str) {
  const arr = str.split(' ');
  const sentence = arr.map((e) => {
    const rest = e.slice(1);
    const first = e[0]
    const suffix = 'ay';
    const word = `${rest}${first}${suffix}`;
    return word;
  }).join(' ');

  return sentence;
}
Enter fullscreen mode Exit fullscreen mode

Solution 2

const reducer = (acc, curr) => {
  const [first, ...rest] = curr.split('');
  const resWord = [...rest,first, 'ay'].join('');
  return acc = acc ? `${acc} ${resWord}` : resWord;
}
const doKata => str => str.split(' ').reduce(reducer, '');
Enter fullscreen mode Exit fullscreen mode

Extra exercise

Try to solve the kata adding the following rule: "leave punctuation marks untouched".

'Pig latin is cool' => igPay atinlay siay oolcay
'Hello world' => elloHay orldway
'Hello, world? How are you, world??!' => elloHay, orldway? owHay eraay ouyay, orldway??!

You can post the solution here as a comment. :)

About this post

I'm am running a free JavaScript Learning Group on [pixari.slack.com] and I use this blog as official blog of the community.
I pick some of the questions from the #questions-answer channel and answer via blog post. This way my answers will stay indefinitely visible for everyone."

If you want to join the community feel free to click here or contact me:

💖 💪 🙅 🚩
pixari
Raffaele Pizzari

Posted on February 5, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

#2 Live Kata Report
javascript #2 Live Kata Report

February 5, 2020