title: for loop in countAndSay function keeps returning blank string after array join
body: <p>I am working on the countAndSay leetcode question. I think my logic is correct, and I'm certain my code is almost there, but I keep getting a blank output on my return statement. I'm struggling to find where my code is causing this string to be blank. Could someone help me out?</p>
  <p>The count-and-say sequence is a sequence of digit strings defined by the recursive formula:</p>
  <p>countAndSay(1) = &quot;1&quot;
  countAndSay(n) is the way you would &quot;say&quot; the digit string from countAndSay(n-1), which is then converted into a different digit string.
  To determine how you &quot;say&quot; a digit string, split it into the minimal number of groups so that each group is a contiguous section all of the same character. Then for each group, say the number of characters, then say the character. To convert the saying into a digit string, replace the counts with a number and concatenate every saying.</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>/**
   * @param {number} n
   * @return {string}
   */
  var countAndSay = function(n) {
      sayString = "1";
      sayArray = [1];
      root = 0;
      previousRoot = 1;
      count = 0;
  
      //begin master loop that creates sayString out of sayArray, run through it n times
      for (i = 0; i &lt; n; i++) {
  
          //loop through the sayString as many times as there are characters to create a sayArray
          for (let i = 0; i &lt; sayString.length; i++) {
  
              //take the first digit in the string call it root
              root = sayString[i];
  
              //if root equals previous root (1 on first loop),
              if (root == previousRoot) {
                  // increase count variable by 1
                  count++;
              }
  
              // else add the count to the sayArray, add the new root value to the array, set count to 0
              else {
                  sayArray.push(count);
                  sayArray.push(root);
                  count = 0;
              }
  
              //change previous root to root so we can check its value next time through the loop
              previousRoot = root;
          }
          //make the new sayString a concatination of the sayArray
          sayString = sayArray.join("");
          //set the sayArray to empty so we can start popolating it again during the loop
          sayArray = [];
      }
      //after weve ran the major loop n times, return sayString
      return sayString;
  };
  
  console.log(countAndSay(4));</code></pre>
  </div>
  </div>
  </p>