Why is my replace method not working?

function convertHTML(str) {
const newStr = str;

for (let i = 0; i < newStr.length; i++) {
  switch(newStr[i]) {
    case "&":
      newStr.replace(newStr[i], "&amp;");
      break;
    case "<":
      newStr.replace(newStr[i], "&lt;");
      break;
    case ">":
      newStr.replace(newStr[i], "&gt;");
      break;
    case `"`:
      newStr.replace(newStr[i], "&quot;");
      break;
    case `'`:
      newStr.replace(newStr[i], "&apos;");
      break;
  }
}

return newStr;

Challenge: Convert HTML Entities

Link to the challenge:

The replace method returns a new string, it does not change the original string.

1 Like

Oh damn, that’s true. It’s a bit tricky for me to keep up with which methods in JS return new ones versus those that modify the original. Thanks.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.