function rot13 which should give me final outcome works only when invoked once. After for example invoking by console.log three times i get three times exact same output as in first invokation
let arr = [];
let output = [];
let incrementedBy13 = [];
let wynik = [];
const alphabet = (charA, charZ) => {
let i = charA.charCodeAt()
let j = charZ.charCodeAt()
for(i; i <= j; i++) {
arr.push(String.fromCharCode(i).toUpperCase())
}
return arr
}
alphabet("a", "z")
console.log(arr)
function rot13(str) {
let ciphered = str.split("")
ciphered.forEach((letter) => {
if (arr.indexOf(letter) === -1) {
output.push(letter)
}
output.push(arr.indexOf(letter))
for (let i = 0; i < output.length; i++) {
if (output[i] === -1) {
output.splice(output[i], 1)
}
}
})
for (let j = 0; j < output.length; j++) {
if (typeof output[j] === "number") {
incrementedBy13.push(output[j] + 13)
}
if (typeof output[j] === "string") {
incrementedBy13.push(output[j])
}
}
wynik.push(incrementedBy13.map((item) => {
if (typeof item === "string") {
return item
}
if (typeof item === "number" && item >= 26) {
return arr[item - 26]
}
if (typeof item === "number" && item < 26) {
return arr[item]
}
}
))
return wynik[0].join(" ")
}
console.log(rot13("SERR CVMMN!"));
console.log(rot13("SERR PBQR PNZC!!"));
console.log(rot13("SERR PBQR PNZC!!"));