-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
135 lines (118 loc) · 4.24 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//Welcome to index.js!
import { fillerWords } from "./box.js";
const paper = document.getElementById('paper');
const analyze = document.getElementById('analyze');
const generalData = document.getElementById('data');
const assumptions = document.getElementById('assumptions');
const textAnalyzer = {
name: 'Text Analyzer 1.0',
charCount: () => {
return paper.value.length;
},
exclSpace: () => {
},
wordCount: (paper) => {
let numOfWords = paper.value.split(' ');
numOfWords = numOfWords.filter(function (str) {
return /\S/.test(str);
});
return numOfWords.length;
},
longestWord: (paper) => {
let sorted = paper.value
.split(' ')
.sort((wordA, wordB) => wordB.length - wordA.length);
return sorted[0];
},
vowelCounter: (paper) => {
const vowels = ['a', 'e', 'i', 'o', 'u'];
let count = 0;
for (let letter of paper.value.toLowerCase()) {
if (vowels.includes(letter))
count++;
}
return count;
},
consonantCounter: (paper) => {
const consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'y', 'z'];
let count = 0;
for (let letter of paper.value.toLowerCase()) {
if (consonants.includes(letter))
count++;
}
return count;
},
vToCRatio: () => {
return textAnalyzer.vowelCounter(paper) / textAnalyzer.consonantCounter(paper);
},
cToVRatio: () => {
return textAnalyzer.consonantCounter(paper) / textAnalyzer.vowelCounter(paper);
},
bagOfWords: () => {
return fillerWords.length;
},
uniqueWords: () => {
}
};
const judge = {
name: 'Text Judger',
lengthJudger: () => {
if (textAnalyzer.wordCount(paper) <= 75)
return 'very short';
else if (textAnalyzer.wordCount(paper) <= 150)
return 'short';
else if (textAnalyzer.wordCount(paper) <= 500)
return 'medium-sized';
else if (textAnalyzer.wordCount(paper) <= 2000)
return 'long';
else return 'very long';
},
vowelComparison: () => {
if (textAnalyzer.vToCRatio() > textAnalyzer.cToVRatio())
return 'vowels than consonants';
else return 'consonants than vowels';
},
guessedLanguage: () => {
if (judge.vowelComparison() === 'vowels than consonants')
return 'Spanish, Portuguese, Italian, or any other vowel-filled language'
else return 'English or other languages similar to English'
}
};
document.title = textAnalyzer.name;
const heading = document.querySelector('h1');
heading.innerHTML = textAnalyzer.name;
analyze.addEventListener('click', showResults);
function showResults() {
generalData.innerHTML = `
<em> <h2> General Data </h2> </em>
<strong> Character Count (incl. spaces): </strong> ${textAnalyzer.charCount()}
<br>
<strong> Character Count (excl. spaces): </strong> ${textAnalyzer.exclSpace()}
<br>
<strong> Word Count: </strong> ${textAnalyzer.wordCount(paper)}
<br>
<strong> Longest Word: </strong> ${textAnalyzer.longestWord(paper)}
<br>
<strong> Number of Vowels: </strong> ${textAnalyzer.vowelCounter(paper)}
<br>
<strong> Number of Consonants: </strong> ${textAnalyzer.consonantCounter(paper)}
<br>
<strong> Vowel to Consonant Ratio: </strong> ${textAnalyzer.vToCRatio()}
<br>
<strong> Consonant to Vowel Ratio: </strong> ${textAnalyzer.cToVRatio()}
<br>
<strong> Bag of Words: </strong> ${textAnalyzer.bagOfWords()}
<br>
<strong> Number of Unique Words: </strong> ${textAnalyzer.uniqueWords()}
`;
assumptions.innerHTML = `
<em> <h2> Assumptions </h2> </em>
This is a ${judge.lengthJudger()} text.
Looks like it has more ${judge.vowelComparison()}.
I'm guessing it's ${judge.guessedLanguage()}.
The bag of words that I found tells me that this text is about the following: _____.
Also, the number of unique words tells me that whoever wrote this has a ____ vocabulary.
`;
//interpretation
//vocabularyJudger
}