title: How to reverse a string that contains complicated emojis?
body: <h3>Input:</h3>
  <pre><code>Hello world‍‍‍‍
  </code></pre>
  <h3>Desired Output:</h3>
  <pre><code>‍‍‍‍dlrow olleH
  </code></pre>
  <p>I tried several approaches but none gave me correct answer.</p>
  <p>This failed miserablly:</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>const text = 'Hello world‍‍‍‍';
  
  const reversed = text.split('').reverse().join('');
  
  console.log(reversed);</code></pre>
  </div>
  </div>
  </p>
  <p>This kinda works but it breaks <code>‍‍‍</code> into 4 different emojis:</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>const text = 'Hello world‍‍‍‍';
  
  const reversed = [...text].reverse().join('');
  
  console.log(reversed);</code></pre>
  </div>
  </div>
  </p>
  <p>I also tried every answer in <a href="https://stackoverflow.com/questions/4547609/how-do-you-get-a-string-to-a-character-array-in-javascript">this question</a> but none of them works.</p>
  <p>Is there a way to get the desired output?</p>