[Solved] Insert a string. Create new string which is the mirror reverse of the inserted one around its center

[ad_1]

The Basic Idea

So with this solution, it’s quite simple, you have your dictionary, then you make a slight change to each object within the dictionary, you basically add some string to it so that if a word is 'card', it’ll swap the order of the letters in such a way that when you search for 'drac', card will appear to be a similar word.

A bit more detail

When you search for words similar to what you’ve got in your dictionary, to prevent outputting exactly what you’ve already searched, when constructing a new array, it’ll push null onto the array if index x is the same word as the word searched.

Then, once the array has been constructed, it filters out all values set to null.

// Simple string sort function. 
const sort = s => [...s].filter(x => x != null).sort().join('');


// Helper function which will state whether or not to push 
// a string onto the array or push null onto the array. 
const push = o => w => sort(o) === sort(w) && o != w ? o : null;


// A function that takes an array of words and a word
// via the use of currying, then magic happens! 
const anagrams = d => w => d.map(o => push(o)(w)).filter(s => s != null);
  
	

// The proof is in the pudding... 
const dictionary = ['stranger','ngerstra','torarot','rotator'];
const word = 'ngerstra';
const otherWord = 'rotator';
const results = anagrams(dictionary)(word);
const otherResults = anagrams(dictionary)(otherWord);
console.log(results);
console.log(otherResults);

3

[ad_2]

solved Insert a string. Create new string which is the mirror reverse of the inserted one around its center