index.js 619 B

123456789101112131415161718192021222324252627
  1. /**
  2. * Count how often a character (or substring) is used in a string.
  3. *
  4. * @param {string} value
  5. * Value to search in.
  6. * @param {string} character
  7. * Character (or substring) to look for.
  8. * @return {number}
  9. * Number of times `character` occurred in `value`.
  10. */
  11. export function ccount(value, character) {
  12. const source = String(value)
  13. if (typeof character !== 'string') {
  14. throw new TypeError('Expected character')
  15. }
  16. let count = 0
  17. let index = source.indexOf(character)
  18. while (index !== -1) {
  19. count++
  20. index = source.indexOf(character, index + character.length)
  21. }
  22. return count
  23. }