Understand [i][0]

In this code:

function titleCase(str) {
  str = str.split(" ");
  for (let i = 0; i < str.length; i++) {
    str[i] = str[i][0].toUpperCase() + str[i].substr(1);

  return str.join(" ");

console.log(titleCase("I'm a little tea pot"));

I would like to understand what the “0” in str[i][0] represents and what it’s purpose is.

What’s the result of this code?

"I'm a little tea pot".split(" ")
1 Like

it creates an array of each of those words.

that is correct.
what will that array look like?


and how do i access each word of this array?

how do I access one letter of one word?

1 Like

The method used on the element [i][0] should also give some insight into what it is. What part of the string does using toUpperCase() make sense with? (within the requirements)


Others gave enough hints, but just in case it is still unclear, you can use brackets to reference an array item, or a string character(index), e.g. ['one', 'two', 8][2] and 'string value'[5] are both fair js syntax. You could even use it to reference object key(which could very much be seen as an index), as im sure you already know, e.g. { one: 'two' }['one']. We are used to see those “objects” masked under a variable name e.g. arr[5], name[2], obj[key], but under the hood they really estimate as their actual value(the given array, string etc). Having multiple brackets, just means referencing nested objects, whatever they could be(array/string/object), e.g. arr[0][i]['someKey'][4], what actually is referenced you must deduct by its origin in the code.

const arr = [
  [ 1, 2, 3, {
    someKey: 'striNg',

const i = 3

// logs "N"