Algorithm 101: 8 Ways to Capitalize a Sentence
Tags: algorithms, javascript, sentence, capitalize
Published: 2020-03-05 11:38:16

In changing the case of a word or sentence to ``uppercase`` or ``lowercase``, we can employ the ``toUpperCase()`` or ``toLowerCase()`` javascript's built-in method respectively. How about ``Capitalizing`` a word or sentence? There is no built-in method yet that I know of in Javascript. Do you know of any?

This episode of Algorithm 101 shows us 8 Ways to Capitalize a Given Sentence.

```javascript

sentenceCapitalization('njoku'); // "Njoku"

sentenceCapitalization('njoku samson ebere'); // "Njoku Samson Ebere"

```

### Prerequisite
To tag along comfortably, you need to have basic understanding of javascript's string and array methods.

### Let's Capitalize a Sentence Using:

* .forEach(), toLowerCase(), split(), slice(), toUpperCase(), push() and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];

        sentence
          .toLowerCase()
          .split(" ")
          .forEach(element => {
            let fistElement = element[0].toUpperCase();
            let splicedElement = element.slice(1);

            capitalizedSentence.push(fistElement + splicedElement);
          });

        return capitalizedSentence.join(" ");
      }
```

* .map(), toLowerCase(), split(), slice(), toUpperCase(), push() and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];

        sentence
          .toLowerCase()
          .split(" ")
          .map(word => {
            capitalizedSentence.push(word[0].toUpperCase() + word.slice(1));
          });

        return capitalizedSentence.join(" ");
      }
```

* .map(), toLowerCase(), split(), toUpperCase(), push(), replace() and join()
```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];

        sentence
          .toLowerCase()
          .split(" ")
          .map(word => {
            let newWord = word.replace(word[0], word[0].toUpperCase());
            capitalizedSentence.push(newWord);
          });

        return capitalizedSentence.join(" ");
      }
```

* .map(), toLowerCase(), split(), toUpperCase(), replace() and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];

        capitalizedSentence = sentence
          .toLowerCase()
          .split(" ")
          .map(word => {
            return word.replace(word[0], word[0].toUpperCase());
          });

        return capitalizedSentence.join(" ");
      }
```

* .map(), toLowerCase(), split(), toUpperCase(), slice() and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];

        capitalizedSentence = sentence
          .toLowerCase()
          .split(" ")
          .map(word => {
            return word[0].toUpperCase() + word.slice(1);
          });

        return capitalizedSentence.join(" ");
      }
```

* for...of, toLowerCase(), split(), toUpperCase(), splice(), push(), spread operator, and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];
        let newSentence = sentence.toLowerCase().split(" ");

        for (word of newSentence) {
          let newWord = word[0].toUpperCase() + [...word].splice(1).join("");

          capitalizedSentence.push(newWord);
        }

        return capitalizedSentence.join(" ");
      }
```

* for...in, toLowerCase(), split(), toUpperCase(), splice(), push(), spread operator and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];
        let newSentence = sentence.toLowerCase().split(" ");

        for (word in newSentence) {
          let newWord =
            newSentence[word][0].toUpperCase() +
            [...newSentence[word]].splice(1).join("");

          capitalizedSentence.push(newWord);
        }

        return capitalizedSentence.join(" ");
      }
```

* forEach...loop, toLowerCase(), split(), toUpperCase(), replace(), push() and join()

```javascript
      function sentenceCapitalization(sentence) {
        let capitalizedSentence = [];
        let newSentence = sentence.toLowerCase().split(" ");

        newSentence.forEach(element => {
          let newWord = element.replace(element[0], element[0].toUpperCase());

          capitalizedSentence.push(newWord);
        });

        return capitalizedSentence.join(" ");
      }
```

### Conclusion
There are many ways to solve problems programmatically. You are only limited by your imagination. I will love to know other ways you solved yours in the comment section.

If you have questions, comments or suggestions, please drop them in the comment section.

> Up Next: [Algorithm 101: 6 Ways to Check if a Word is a Palindrome](https://dev.to/ebereplenty/algorithm-101-6-ways-to-check-if-a-word-is-a-palindrome-40a3)

You can also follow and message me on social media platforms. 

**[Twitter](https://twitter.com/eberetwit) | [LinkedIn](https://www.linkedin.com/in/samson-ebere-njoku-profile/) | [Github](https://github.com/EBEREGIT)**

Thank You For Your Time.