title: Condensing code that compares whether one string can be arranged to create another string
body: <p>The challenge to solve was to write a function that takes two strings as inputs and if the first string can be re-arranged to create the second string, return the string &quot;true&quot;. If not, return &quot;false&quot;. I was able to solve it, but my solution is beefy and not exactly eloquent. I would like tips/tricks for condensing the code that I wrote.</p>
  <pre><code>//to solve, create (2) objects with the values as the # of appearances of chars
  // in the (2) strings
  const countStr1 = {};
  const countStr2 = {};
  for(let chr of str1) {
    if (countStr1[chr]) {
      countStr1[chr]++;
    } else{
      countStr1[chr] = 1;
    }
  }
  for(let chr2 of str2){
    if(countStr2[chr2]){
      countStr2[chr2]++;
    } else{
      countStr2[chr2] = 1;
    }
  }
  //  console.log(countStr1);
  //  console.log(countStr2);
  // create (2) arrays of keys:
  const keys1 = Object.keys(countStr1);
  const keys2 = Object.keys(countStr2);
  //console.log(keys1.length);
  //console.log(keys2.length);
    
  if (keys2.length &gt; keys1.length){
    return &quot;false&quot;;
  }
  
    for (let key of keys2) {
  //  console.log(countStr1[key]);
    if (countStr1[key] &lt; countStr2[key]){
      return &quot;false&quot;;
    }
  return &quot;true&quot;;
  }  
  }
     
  // keep this function call here 
  console.log(StringScramble(&quot;cdoer&quot;,&quot;coder&quot;));```
  
  </code></pre>