Last active
August 29, 2015 14:05
-
-
Save yitsushi/3fe4ae32c1f9a52bb879 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan mattis nibh, sit amet ultricies enim congue a. Pellentesque congue libero sit amet velit pulvinar feugiat. Etiam sagittis erat vel est lacinia, ut bibendum quam mattis. Vestibulum lacinia ante sem, sit amet convallis lorem elementum sit amet. Phasellus a fringilla orci, eget placerat sem. Curabitur tempus sed nibh a iaculis. Fusce ut sapien eu massa euismod elementum. Etiam nisi magna, tempus non dictum eu, feugiat eu lacus. Vivamus tempor lacus eget nisl vulputate dignissim. Donec ut tincidunt ipsum, ac convallis neque." | |
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 a = TEXT.split(/ /) | |
.map(function(item) { return item.replace(/[^a-zA-Z]/g, "").toLowerCase(); }) | |
.filter(function(c, position, self) { return c.length > 3 && self.indexOf(c) == position }) | |
.sort() | |
.map(function(item) { return "('" + item + "', '" + soundex(item) + "', " + item.length + ", " + item.match(/[aeuio]/g).length + ")"; }).join(",\n ") | |
var query = "insert into TTT (`word`, `soundex`, `length`, `vowel_count`) values\n " + a + "\n;" | |
console.log(query); |
Author
yitsushi
commented
Aug 19, 2014
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment