Phonetic Search

by Samuel Guimarães

JavaScript

var result = [];
var output = {};

var dictionary = [
	'angel',
  'brave',
  'Braev',
  'Don',
  'Engel',
  'go',
  'goal',
  'son',
  'sunny',
  'Tom',
  'Tooonnnnyyyy'
];

var testDictionary = [
	'test',
  'TEST',
  'TEst',
  'false',
  'true'
];

var manyword = [];

// Get input values from cli
var input = 'testÇ111 Test true';
// Split by whitespace in array (considering input is a small array)
input = input.split(' ');
for (i = 0; i < input.length; i++) { 
    input[i] = input[i].replace(/[^a-z]/gi, '');
}

// Comparing two arrays

for (var i = 0; i < input.length; i++) {
    var temp = [];
    for (var j = 0; j < testDictionary.length; j++) {
    // The logic begins here
    	// Just basic check for exact words case insensitive
			var newPattern = input[i];
			var rgxp = new RegExp(newPattern, "i");
      if(testDictionary[j].match(rgxp)){
      	temp.push(testDictionary[j]);
        output[input[i]] = temp;
      	result.push(input[i]);
      }
    }
}

console.log('input:');
console.log(input);
console.log('result');
console.log(result);
console.log(output);