-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
28 lines (24 loc) · 841 Bytes
/
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
export default function numberOfWords(text, caseSensitive = true, letter = "normal" | "upperCase" | "lowerCase", noPunctuation = true) {
let _text = text
if (noPunctuation) {
_text = text.replace(/[.,\/#!$%\^&\*;:{}=\-+_`~()]/g,"")
}
const words = _text.split(" ")
let again = 0
let output = { }
function convert(word) {
return letter ?
letter === "upperCase" ? word.toUpperCase() : word.toLowerCase() :
caseSensitive ? word : word.toLowerCase()
}
for (let i = 0; i < words.length; i++) {
if (words[i] !== "") {
for (let k = 0; k < words.length; k++) {
if (words[i] === words[k] || (!caseSensitive && words[i].toLowerCase() === words[k].toLowerCase())) again++
}
output[convert(words[i])] = again
again = 0
}
}
return output
}