Can someone explain why this code doesn't work?

Tell us what’s happening:
Describe your issue in detail here.

  **Your code so far**

function convertHTML(str) {

switch (str.includes()) {

  case "&":
    str.replace("&", "&")
    break;

  case "<":
    str.replace("<","&lt")
    break; 

  case ">":
    str.replace(">","&gt")
    break; 
  case '"':
    str.replace('"', '&quot;')
    break; 
  case "'":
    str.replace("'","&apos;")
    break; 
}
return str;
}

console.log(convertHTML("Dolce & Gabbana"));
  **Your browser information:**

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0

Challenge: Convert HTML Entities

Link to the challenge:

Hello there.

Do you have a question?

If so, please edit your post to include it in the Tell us what’s happening section.

Learning to describe problems is hard, but it is an important part of learning how to code.

Also, the more information you give us, the more likely we are to be able to help.

If I remember right, string.replace() doesn’t modify the string directly, so you would need to assign it to a variable.

newstring = str.replace(stuff);

You can also use the original string too.

str = str.replace(stuff);

Does that help?