Files
freeCodeCamp/guide/english/certifications/coding-interview-prep/rosetta-code/soundex/index.md
mrugesh 91df817cfe fix(guide) add stubs, update spellings and prepare for move (#36531)
* fix(guide) add stubs and correct file path misspellings and pr… (#36528)

* fix: corrected file path to match curriculum

* fix: renamed to newer challenge name

* fix: added solutions to articles from challenge files

* fix: added missing .english to file name

* fix: added missing title to guide article

* fix: correct solution for guide article

* fix: replaced stub with hint

* fix: added space in Hint headers

* fix: added solution to guide article

* fix: added solution to guide article

* test: replaced stub with hint and solution

* fix: add Problem number: to title

* fix: changed generatorexponential to correct name

* fix: renamed knight's tour to knights-tour

* fix: updated guide article
2019-07-30 00:25:58 +05:30

680 B

title
title
Soundex

Soundex


Solutions

Solution 1 (Click to Show/Hide)
function soundex(s) {
  var a = s.toLowerCase().split('')
  var f = a.shift(),
    r = '',
    codes = {
       a: '', e: '', i: '', o: '', u: '',
       b: 1, f: 1, p: 1, v: 1,
       c: 2, g: 2, j: 2, k: 2, q: 2, s: 2, x: 2, z: 2,
       d: 3, t: 3,
       l: 4,
       m: 5, n: 5,
       r: 6
    };
  r = f + a
    .map(function(v, i, a) {
      return codes[v]
    })
    .filter(function(v, i, a) {
      return ((i === 0) ? v !== codes[f] : v !== a[i - 1]);
    })
    .join('');

  return (r + '000').slice(0, 4).toUpperCase();
}