same.js
Version:
A Class of Parallel Arrays Manipulation
675 lines (647 loc) • 21.8 kB
JavaScript
function charNumber(numb) {
if(isNaN(numb)) {
try {
_0Value()
} catch(err) {
console.log(err.message + "\n" + err.name + "\n" + err.stack);
}
} else {
var ch = [];
var final = '';
const minus = 'minus';
const _0 = 'zero';
const _1 = 'one';
const _2 = 'two';
const _3 = 'three';
const _4 = 'four';
const _5 = 'five';
const _6 = 'six';
const _7 = 'seven';
const _8 = 'eight';
const _9 = 'nine';
const _10 = 'ten';
const _11 = 'eleven';
const _12 = 'twelve';
const _13 = 'thirteen';
const _15 = 'fifteen';
const teen = 'teen';
const _20 = 'twenty';
const _30 = 'thirty';
const _40 = 'fourty';
const _50 = 'fifty';
const _60 = 'sixty';
const _70 = 'seventy';
const _80 = 'eighty';
const _90 = 'ninety';
const _100 = 'hundred';
const _1000 = 'thousand';
var isTen = false;
var lastZero = 0;
var isN = false;
/*
lastZero: {
0: neither hundreds or dozens = 0,
1: hundreds = 0,
2: hundreds and dozens = 0,
3: dozens = 0,
4: negative number
}
*/
var str = String(numb);
var strlg = str.length;
while(str[0] == '0' && strlg > 1) {
str = str.split('0', 1).pop();
strlg = str.length;
}
if(Number(str) < 0) {
ch.push(minus + ' ');
str = str.split('-').pop();
strlg = str.length;
isN = true;
}
if(strlg == 4) {
switch (Number(str[0])) {
case 1:
ch.push(_1 + ' ' + _1000);
break;
case 2:
ch.push(_2 + ' ' + _1000);
break;
case 3:
ch.push(_3 + ' ' + _1000);
break;
case 4:
ch.push(_4 + ' ' + _1000);4
break;
case 5:
ch.push(_5 + ' ' + _1000);
break;
case 6:
ch.push(_6 + ' ' + _1000);
break;
case 7:
ch.push(_7 + ' ' + _1000);
break;
case 8:
ch.push(_8 + ' ' + _1000);
break;
case 9:
ch.push(_9 + ' ' + _1000);
break;
}
switch (Number(str[1])) {
case 0:
ch.push(undefined);
lastZero = 1;
break;
case 1:
ch.push(' ' + _1 + ' ' + _100);
break;
case 2:
ch.push(' ' + _2 + ' ' + _100);
break;
case 3:
ch.push(' ' + _3 + ' ' + _100);
break;
case 4:
ch.push(' ' + _4 + ' ' + _100);
break;
case 5:
ch.push(' ' + _5 + ' ' + _100);
break;
case 6:
ch.push(' ' + _6 + ' ' + _100);
break;
case 7:
ch.push(' ' + _7 + ' ' + _100);
break;
case 8:
ch.push(' ' + _8 + ' ' + _100);
break;
case 9:
ch.push(' ' + _9 + ' ' + _100);
break;
}
if(lastZero == 1) {
switch (Number(str[2])) {
case 0:
ch.push(undefined);
lastZero = 3;
break;
case 1:
isTen = true;
break;
case 2:
ch.push(' ' + _20);
break;
case 3:
ch.push(' ' + _30);
break;
case 4:
ch.push(' ' + _40);
break;
case 5:
ch.push(' ' + _50);
break;
case 6:
ch.push(' ' + _60);
break;
case 7:
ch.push(' ' + _70);
break;
case 8:
ch.push(' ' + _80);
break;
case 9:
ch.push(' ' + _90);
break;
}
} else if(lastZero == 0) {
switch (Number(str[2])) {
case 0:
ch.push(undefined);
lastZero = 2;
break;
case 1:
ch.push(undefined);
isTen = true;
break;
case 2:
ch.push(' ' + _20);
break;
case 3:
ch.push(' ' + _30);
break;
case 4:
ch.push(' ' + _40);
break;
case 5:
ch.push(' ' + _50);
break;
case 6:
ch.push(' ' + _60);
break;
case 7:
ch.push(' ' + _70);
break;
case 8:
ch.push(' ' + _80);
break;
case 9:
ch.push(' ' + _90);
break;
}
}
if(isTen) {
switch (Number(str[3])) {
case 0:
ch.push(_10);
break;
case 1:
ch.push(_11);
break;
case 2:
ch.push(_12);
break;
case 3:
ch.push(_13);
break;
case 4:
ch.push(_4 + teen);
break;
case 5:
ch.push(_15);
break;
case 6:
ch.push(_6 + teen);
break;
case 7:
ch.push(_7 + teen);
break;
case 8:
ch.push(_8 + 'een');
break;
case 9:
ch.push(_9 + teen);
break;
}
} else {
if(lastZero == 2 || lastZero == 3) {
switch (Number(str[3])) {
case 0:
ch.push(undefined);
break;
case 1:
ch.push(_1);
break;
case 2:
ch.push(_2);
break;
case 3:
ch.push(_3);
break;
case 4:
ch.push(_4);
break;
case 5:
ch.push(_5);
break;
case 6:
ch.push(_6);
break;
case 7:
ch.push(_7);
break;
case 8:
ch.push(_8);
break;
case 9:
ch.push(_9);
break;
}
} else {
switch (Number(str[3])) {
case 0:
ch.push(undefined);
break;
case 1:
ch.push('-' + _1);
break;
case 2:
ch.push('-' + _2);
break;
case 3:
ch.push('-' + _3);
break;
case 4:
ch.push('-' + _4);
break;
case 5:
ch.push('-' + _5);
break;
case 6:
ch.push('-' + _6);
break;
case 7:
ch.push('-' + _7);
break;
case 8:
ch.push('-' + _8);
break;
case 9:
ch.push('-' + _9);
break;
}
}
}
let i = 0, one = 1, two = 2, three = 3;
if(isN) {
final = ch[i];
i++;
one++;
two++;
three++;
}
if(ch[one] == undefined) {
if(ch[two] == undefined && ch[three] == undefined) final += ch[i];
else if(ch[two] == undefined) final += ch[i] + ' ' + ch[three];
else final += ch[i] + ch[two] + ch[three];
}
else if(ch[two] == undefined) {
if(ch[three] == undefined) final += ch[i] + ch[one];
else final += ch[i] + ch[one] + ' ' + ch[three];
}
else if(ch[three] == undefined) final += ch[i] + ch[one] + ch[two];
else final += ch[i] + ch[one] + ch[two] + ch[three];
return final;
}
if(strlg == 3) {
switch (Number(str[0])) {
case 1:
ch.push(_1 + ' ' + _100);
break;
case 2:
ch.push(_2 + ' ' + _100);
break;
case 3:
ch.push(_3 + ' ' + _100);
break;
case 4:
ch.push(_4 + ' ' + _100);
break;
case 5:
ch.push(_5 + ' ' + _100);
break;
case 6:
ch.push(_6 + ' ' + _100);
break;
case 7:
ch.push(_7 + ' ' + _100);
break;
case 8:
ch.push(_8 + ' ' + _100);
break;
case 9:
ch.push(_9 + ' ' + _100);
break;
}
switch (Number(str[1])) {
case 0:
ch.push(undefined);
lastZero = 3;
break;
case 1:
isTen = true;
break;
case 2:
ch.push(' ' + _20);
break;
case 3:
ch.push(' ' + _30);
break;
case 4:
ch.push(' ' + _40);
break;
case 5:
ch.push(' ' + _50);
break;
case 6:
ch.push(' ' + _60);
break;
case 7:
ch.push(' ' + _70);
break;
case 8:
ch.push(' ' + _80);
break;
case 9:
ch.push(' ' + _90);
break;
}
if(isTen) {
switch (Number(str[2])) {
case 0:
ch.push(' ' + _10);
break;
case 1:
ch.push(' ' + _11);
break;
case 2:
ch.push(' ' + _12);
break;
case 3:
ch.push(' ' + _13);
break;
case 4:
ch.push(' ' + _4 + teen);
break;
case 5:
ch.push(' ' + _15);
break;
case 6:
ch.push(' ' + _6 + teen);
break;
case 7:
ch.push(' ' + _7 + teen);
break;
case 8:
ch.push(' ' + _8 + 'een');
break;
case 9:
ch.push(' ' + _9 + teen);
break;
}
} else {
if(lastZero == 3) {
switch (Number(str[2])) {
case 0:
ch.push(undefined);
break;
case 1:
ch.push(_1);
break;
case 2:
ch.push(_2);
break;
case 3:
ch.push(_3);
break;
case 4:
ch.push(_4);
break;
case 5:
ch.push(_5);
break;
case 6:
ch.push(_6);
break;
case 7:
ch.push(_7);
break;
case 8:
ch.push(_8);
break;
case 9:
ch.push(_9);
break;
}
} else {
switch (Number(str[2])) {
case 0:
ch.push(undefined);
break;
case 1:
ch.push('-' + _1);
break;
case 2:
ch.push('-' + _2);
break;
case 3:
ch.push('-' + _3);
break;
case 4:
ch.push('-' + _4);
break;
case 5:
ch.push('-' + _5);
break;
case 6:
ch.push('-' + _6);
break;
case 7:
ch.push('-' + _7);
break;
case 8:
ch.push('-' + _8);
break;
case 9:
ch.push('-' + _9);
break;
}
}
}
let i = 0, one = 1, two = 2, three = 3;
if(isN) {
final = ch[i];
i++;
one++;
two++;
three++;
}
if(ch[one] == undefined) {
if(ch[two] == undefined) final += ch[i];
else final += ch[i] + ' ' + ch[two];
}
else if(ch[two] == undefined) final += ch[i] + ch[one];
else final += ch[i] + ch[one] + ch[two];
return final;
}
if(strlg == 2) {
switch (Number(str[0])) {
case 1:
isTen = true;
break;
case 2:
ch.push(_20);
break;
case 3:
ch.push(_30);
break;
case 4:
ch.push(_40);
break;
case 5:
ch.push(_50);
break;
case 6:
ch.push(_60);
break;
case 7:
ch.push(_70);
break;
case 8:
ch.push(_80);
break;
case 9:
ch.push(_90);
break;
}
if(isTen) {
switch (Number(str[1])) {
case 0:
ch.push(_10);
break;
case 1:
ch.push(_11);
break;
case 2:
ch.push(_12);
break;
case 3:
ch.push(_13);
break;
case 4:
ch.push(_4 + teen);
break;
case 5:
ch.push(_15);
break;
case 6:
ch.push(_6 + teen);
break;
case 7:
ch.push(_7 + teen);
break;
case 8:
ch.push(_8 + 'een');
break;
case 9:
ch.push(_9 + teen);
break;
}
} else {
switch (Number(str[1])) {
case 0:
ch.push(undefined);
break;
case 1:
ch.push('-' + _1);
break;
case 2:
ch.push('-' + _2);
break;
case 3:
ch.push('-' + _3);
break;
case 4:
ch.push('-' + _4);
break;
case 5:
ch.push('-' + _5);
break;
case 6:
ch.push('-' + _6);
break;
case 7:
ch.push('-' + _7);
break;
case 8:
ch.push('-' + _8);
break;
case 9:
ch.push('-' + _9);
break;
}
}
let i = 0, one = 1, two = 2, three = 3;
if(isN) {
final = ch[i];
i++;
one++;
two++;
three++;
}
if(ch[one] == undefined) final += ch[i];
else final += ch[i] + ch[one];
return final;
}
if(strlg == 1) {
switch (Number(str[0])) {
case 0:
ch.push(_0);
break;
case 1:
ch.push(_1);
break;
case 2:
ch.push(_2);
break;
case 3:
ch.push(_3);
break;
case 4:
ch.push(_4);
break;
case 5:
ch.push(_5);
break;
case 6:
ch.push(_6);
break;
case 7:
ch.push(_7);
break;
case 8:
ch.push(_8);
break;
case 9:
ch.push(_9);
break;
}
if(isN) final = ch[0] + ch[1];
else final = ch[0];
return final;
}
}
}
module.exports.charNumber = charNumber;