Skip to content

Instantly share code, notes, and snippets.

@Fordi
Created October 28, 2020 06:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fordi/0db5d1410c83681d44f85387ae342bc3 to your computer and use it in GitHub Desktop.
Save Fordi/0db5d1410c83681d44f85387ae342bc3 to your computer and use it in GitHub Desktop.
(() => {
const letters = {
a: 'ay',
b: 'bee',
c: 'see',
d: 'dee',
e: 'eee',
f: 'eff',
g: 'jee',
h: 'aitch',
i: 'eye',
j: 'jay',
k: 'kay',
l: 'ell',
m: 'em',
n: 'en',
o: 'oh',
p: 'pee',
q: 'cue',
r: 'arr',
s: 'ess',
t: 'tee',
u: 'you',
v: 'vee',
w: 'doubleyou',
x: 'eks',
y: 'why',
z: 'zee'
};
let order = Object.keys(letters);
const sortFn = (a, b) => {
const wa = letters[a];
const wb = letters[b];
for (let i = 0; i < wa.length && i < wb.length; i++) {
const va = order.indexOf(wa[i]);
const vb = order.indexOf(wb[i]);
if (va > vb) return 1;
if (va < vb) return -1;
}
if (wa.length > wb.length) return -1;
if (wb.length > wa.length) return 1;
return 0;
};
let newOrder = order.slice().sort(sortFn);
while (newOrder.join('') !== order.join('')) {
order = newOrder;
newOrder = order.slice().sort(sortFn);
}
console.log(order.join(''));
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment