forked from TheAlgorithms/JavaScript
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCountLetters.js
More file actions
Latest commit
33 lines (26 loc) · 810 Bytes
/
Copy pathCountLetters.js
File metadata and controls
33 lines (26 loc) · 810 Bytes
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
/**
* @function countLetters
* @description Given a string, count the number of each letter.
* @param {String} str - The input string
* @return {Object} - Object with letters and number of times
* @example countLetters("hello") => {h: 1, e: 1, l: 2, o: 1}
*/
constcountLetters=(str)=>{
constspecialChars=/\W/g
if(typeofstr!=='string'){
thrownewTypeError('Input should be a string')
}
if(specialChars.test(str)){
thrownewTypeError('Input must not contain special characters')
}
if(/\d/.test(str)){
thrownewTypeError('Input must not contain numbers')
}
constobj={}
for(leti=0;i<str.toLowerCase().length;i++){
constchar=str.toLowerCase().charAt(i)
obj[char]=(obj[char]||0)+1
}
returnobj
}
export{countLetters}