* 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
38 lines
680 B
Markdown
38 lines
680 B
Markdown
---
|
|
title: Soundex
|
|
---
|
|
# Soundex
|
|
|
|
---
|
|
## Solutions
|
|
|
|
<details><summary>Solution 1 (Click to Show/Hide)</summary>
|
|
|
|
```javascript
|
|
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();
|
|
}
|
|
```
|
|
|
|
</details> |