Skip to main content

Command Palette

Search for a command to run...

CodeWars: Sort the odd

Published
โ€ข2 min read
A
Born as WordPress theme developer and switched on React.js while the CMS was still fighting with its own community about the Gutenberg editor. Now working daily building full-stack applications with Next.js

Kata: Link

You have to create an algorithm that will swap only the odd numbers, this was the solution submitted by me:

function sortArray(array){
  const odds = array
    .filter( item => item % 2)
    .sort((a,b) => a < b ? -1 : 1)
  return array
    .map( item => item % 2 ? odds.shift() : item)
}

With my approach I first filter and sort into a new array all the odd values, then I map into the original array and each time I find in it an odd value I take the first Item of my sorted array and put it in place of the 'original' odd number.

This is the same approach taken in the most accepted answer, kudos to me ๐ŸŽ‰

Well there is a minor difference from mine... The sort callback fn that I made presents a minor difference, both are good but mine is just longer:

// my sort callback
(a, b) => a < b ? -1 : 1;
// accepted solution
(a, b) => a - b;

Basically I am taking the longer path because as you'll find in MDN the accepted one is basically the sorting logic for numbers, give it a read to the comparing fns ๐Ÿ˜‰