First trial didn't work because string is immutable.
function LetterChanges(str) { 
  // want c->d & z->a; a,e,i,o,u capitalized
  for(i=str.length-1;i>=0;i--){
    if(str[i]=="c"){str[i]="d"}
    if(str[i]=="z"){str[i]="a"}
    if(str[i]=="a"||"e"||"i"||"o"||"u"){str[i]=str[i].toUpperCase()}
  }
  return str;          
}
LetterChanges("I love you, Catz") // should return "AtAD ,UOy EvOl I"
Second trial: WHY DOES IT CAPITALIZE EVERYTHING? It should capitalize vowels only.
function LetterChanges(str) { 
  var changed = ""
  // c->d & z->a; a,e,i,o,u capitalized
  for(i=str.length-1;i>=0;i--){
    if(str[i]=="c"){changed+="d"}
    else if (str[i]=="C"){changed+="D"}
    else if(str[i]=="z"){changed+="a"}
    else if(str[i]=="Z"){changed+="A"}
    else if(str[i]=="a"||"e"||"i"||"o"||"u"){changed+=str[i].toUpperCase()}
    else {changed+=str[i]}
  }
  return changed; 
}
LetterChanges("CapuoZ") // should return "AOUpAD" but instead it returns "AOUPAD", capitalizing non-vowels.
 
     
     
     
     
    