Hi all,
Just finished this challenge and was amazed at the solutions others have posted on the forum, specifically at how little code they have used. I’ve noticed that I tend to make a mountain out of my solutions when I have looked at the forum in the past. This tendency is worrying me. Any critique, encouragement, or advice is welcome.
function myReplace(str, before, after) {
var theSentence = str;
//document.getElementById(“replaceThis”).innerHTML = before;
//document.getElementById(“withThis”).innerHTML = after;
//document.getElementById(“theString”).innerHTML = str;
//capitalize the first letter of before
var beforeUpper = before;
var beforeUpperSplit = beforeUpper.split('');
var beforeUpperSplitSliced = beforeUpperSplit.slice(0, 1);
var beforeUpperRemainder = beforeUpperSplit.slice(1);
console.log("beforeUpperSplitSliced = " + beforeUpperSplitSliced);
var beforeUpper1stLetter = beforeUpperSplitSliced[0].toUpperCase();
beforeUpperRemainder.unshift(beforeUpper1stLetter);
beforeUpper = beforeUpperRemainder.toString();
console.log("beforeUpper = " + beforeUpper);
beforeUpper = beforeUpper.replace(/[\,]/g, '');
console.log("beforeUpper = " + beforeUpper);
//capitalize the first letter of after
var afterUpper = after;
var afterUpperSplit = afterUpper.split('');
var afterUpperSplitSliced = afterUpperSplit.slice(0, 1);
var afterUpperRemainder = afterUpperSplit.slice(1);
console.log("afterUpperSplitSliced = " + afterUpperSplitSliced);
var afterUpper1stLetter = afterUpperSplitSliced[0].toUpperCase();
afterUpperRemainder.unshift(afterUpper1stLetter);
afterUpper = afterUpperRemainder.toString();
console.log("afterUpper = " + afterUpper);
afterUpper = afterUpper.replace(/[\,]/g, '');
console.log("afterUpper = " + afterUpper);
//find the index of the lower or upper case before in str
var indexOfBeforeInStrLower = str.indexOf(before);
var indexOfBeforeInStrUpper = str.indexOf(beforeUpper);
console.log("test1 = " + indexOfBeforeInStrLower);
console.log("test2 = " + indexOfBeforeInStrUpper);
if(str.charAt(indexOfBeforeInStrLower) === before[0].toLowerCase()){
theSentence = theSentence.replace(before, after);
console.log("case 1");
}else if(str.charAt(indexOfBeforeInStrUpper) === before[0].toUpperCase()){
theSentence = theSentence.replace(beforeUpper, afterUpper);
console.log("case 2");
}
//document.getElementById("theSentence").innerHTML = theSentence;
return theSentence;
}