Counting letters in a string
JavaScriptAll snippets in this category →
Posted on To know how often each letter appears in a string, we can turn it into a dictionary. Each letter becomes a key in that dictionary, while each value is the number of occurrences of the letter.
const string = "Supercalifragilisticexpialidocious"
// split the string into an array of individual letters
const result = string.split("")
// turn all letters into lowercase
.map(letter => letter.toLowerCase())
// walk through all letters and build a dictionary as you go
.reduce((dictionary, letter) => ({
// take the result after the previous step into the new result
...dictionary,
// increment the existing counter (or 0 for new entries) for this letter
[letter]: (dictionary[letter] ?? 0) + 1
}), {})
console.log(result)
// ⇒ {
// a: 3, c: 3, d: 1, e: 2, f: 1, g: 1, i: 7, l: 3,
// o: 2, p: 2, r: 2, s: 3, t: 1, u: 2, x: 1
// }
const string = "Supercalifragilisticexpialidocious"
// split the string into an array of individual letters
const result = string.split("")
// turn all letters into lowercase
.map(letter => letter.toLowerCase())
// walk through all letters and build a dictionary as you go
.reduce((dictionary, letter) => ({
// take the result after the previous step into the new result
...dictionary,
// increment the existing counter (or 0 for new entries) for this letter
[letter]: (dictionary[letter] ?? 0) + 1
}), {})
console.log(result)
// ⇒ {
// a: 3, c: 3, d: 1, e: 2, f: 1, g: 1, i: 7, l: 3,
// o: 2, p: 2, r: 2, s: 3, t: 1, u: 2, x: 1
// }
const string = "Supercalifragilisticexpialidocious"
// split the string into an array of individual letters
const result = string.split("")
// turn all letters into lowercase
.map(letter => letter.toLowerCase())
// walk through all letters and build a dictionary as you go
.reduce((dictionary, letter) => ({
// take the result after the previous step into the new result
...dictionary,
// increment the existing counter (or 0 for new entries) for this letter
[letter]: (dictionary[letter] ?? 0) + 1
}), {})
console.log(result)
// ⇒ {
// a: 3, c: 3, d: 1, e: 2, f: 1, g: 1, i: 7, l: 3,
// o: 2, p: 2, r: 2, s: 3, t: 1, u: 2, x: 1
// }
const string = "Supercalifragilisticexpialidocious"
// split the string into an array of individual letters
const result = string.split("")
// turn all letters into lowercase
.map(letter => letter.toLowerCase())
// walk through all letters and build a dictionary as you go
.reduce((dictionary, letter) => ({
// take the result after the previous step into the new result
...dictionary,
// increment the existing counter (or 0 for new entries) for this letter
[letter]: (dictionary[letter] ?? 0) + 1
}), {})
console.log(result)
// ⇒ {
// a: 3, c: 3, d: 1, e: 2, f: 1, g: 1, i: 7, l: 3,
// o: 2, p: 2, r: 2, s: 3, t: 1, u: 2, x: 1
// }