Expected Output Example: Our word is Pokemon
Pokemon (Regular word)
P!k!m!n (Every 2nd letter is !)
Nomekop (Reversed)
pokemOn (Every 6th letter is uppercase)
[Array of ASCII Values]
I am sure that I have got reverse just fine but need help in figuring out uppercase and changing every 2nd letter and returning ASCII codes of the word.
I would imagine that the logic for replacing is where i%2 = 0 make the character a '!' If uppercase is similar I am struggling to implement it or I could be wrong.
The output looks like this right now
Pokemon undefined Pokemon 80 nomekop
function replaceAt(string) {
for(let i=0; i=string.length; i ){
string = word
string.charAt(i) = '!'
i
}
}
// This function intended to make every 6th letter uppercase
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() string.slice(1);
}
function returnASCII(string) {
for (let i = 0; i < string.length; i ) {
// How to do this but on one line?
// Would I have to convert this to an array?
return string.charCodeAt(i);
}
}
let word = "Pokemon";
console.log(word)
console.log(replaceAt(1, "!"))
console.log(capitalizeFirstLetter(word));
console.log(returnASCII(word))
// Intended to show word reversed
let reverse = word.split('').reverse().join('').toLowerCase();
console.log(reverse)
I am only concerned with vanilla JS
Any guidance would be greatly appreciated!
CodePudding user response:
ReplaceAt
For replaceAt, you're passing two parameters, but you only set up your function with one.
Capitalize Every 6th Letter
To capitalize every 6th letter of a word, do this:
function capitalizeEvery6thLetter(word){
res = '';
for(let i = 0; i < word.length; i ){
if((i % 5) == 0){ // Check i % 5 instead of 6 due to zero indexing
res = word[i].toUpperCase();
} else {
res = word[i]
}
}
return res;
}
Iterate through the word, check if i%5 is 0 (due to every 5th index actually being the 6th letter), set that letter to uppercase and add it to an empty result string, or just add the letter if it i%5 isn't 0. Then once all the letters are added, return the result.
Word to ASCII Array
For turning a word into an array of ASCII characters, do this:
function asciiValues(word){
res = [];
for(let i = 0; i < word.length; i ){
res.push(word[i].charCodeAt())
}
return res;
}
It's a similar approach to the last function, only get the character code at each letter and add it to an array. In your current function, you have a correct set up, but the return statement of the loop means it only runs once before returning the single letter to ascii.