Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
81
Task/Soundex/JavaScript/soundex-1.js
Normal file
81
Task/Soundex/JavaScript/soundex-1.js
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
var soundex = function (s) {
|
||||
var a = s.toLowerCase().split('')
|
||||
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();
|
||||
};
|
||||
|
||||
var tests = {
|
||||
"Soundex": "S532",
|
||||
"Example": "E251",
|
||||
"Sownteks": "S532",
|
||||
"Ekzampul": "E251",
|
||||
"Euler": "E460",
|
||||
"Gauss": "G200",
|
||||
"Hilbert": "H416",
|
||||
"Knuth": "K530",
|
||||
"Lloyd": "L300",
|
||||
"Lukasiewicz": "L222",
|
||||
"Ellery": "E460",
|
||||
"Ghosh": "G200",
|
||||
"Heilbronn": "H416",
|
||||
"Kant": "K530",
|
||||
"Ladd": "L300",
|
||||
"Lissajous": "L222",
|
||||
"Wheaton": "W350",
|
||||
"Ashcraft": "A226",
|
||||
"Burroughs": "B622",
|
||||
"Burrows": "B620",
|
||||
"O'Hara": "O600"
|
||||
};
|
||||
|
||||
for (var i in tests)
|
||||
if (tests.hasOwnProperty(i)) {
|
||||
console.log(
|
||||
i +
|
||||
' \t' +
|
||||
tests[i] +
|
||||
'\t' +
|
||||
soundex(i) +
|
||||
'\t' +
|
||||
(soundex(i) === tests[i])
|
||||
);
|
||||
}
|
||||
|
||||
// Soundex S532 S532 true
|
||||
// Example E251 E251 true
|
||||
// Sownteks S532 S532 true
|
||||
// Ekzampul E251 E251 true
|
||||
// Euler E460 E460 true
|
||||
// Gauss G200 G200 true
|
||||
// Hilbert H416 H416 true
|
||||
// Knuth K530 K530 true
|
||||
// Lloyd L300 L300 true
|
||||
// Lukasiewicz L222 L222 true
|
||||
// Ellery E460 E460 true
|
||||
// Ghosh G200 G200 true
|
||||
// Heilbronn H416 H416 true
|
||||
// Kant K530 K530 true
|
||||
// Ladd L300 L300 true
|
||||
// Lissajous L222 L222 true
|
||||
// Wheaton W350 W350 true
|
||||
// Ashcraft A226 A226 true
|
||||
// Burroughs B622 B622 true
|
||||
// Burrows B620 B620 true
|
||||
// O'Hara O600 O600 true
|
||||
Loading…
Add table
Add a link
Reference in a new issue