const caesar = function(word, shift) { let alphabet = [["A","a"],["B","b"],["C","c"],["D","d"],["E","e"],["F","f"],["G","g"],["H","h"],["I","i"],["J","j"],["K","k"],["L","l"],["M","m"],["N","n"],["O","o"],["P","p"],["Q","q"],["R","r"],["S","s"],["T","t"],["U","u"],["V","v"],["W","w"],["X","x"],["Y","y"],["Z","z"]]; let cypher = [["A","a"],["B","b"],["C","c"],["D","d"],["E","e"],["F","f"],["G","g"],["H","h"],["I","i"],["J","j"],["K","k"],["L","l"],["M","m"],["N","n"],["O","o"],["P","p"],["Q","q"],["R","r"],["S","s"],["T","t"],["U","u"],["V","v"],["W","w"],["X","x"],["Y","y"],["Z","z"]]; let newWord = []; if (shift > 0) { //if positive number, shift and push for (i = 0; i < shift; i++) { //cypher.unshift(cypher.pop()); cypher.push(cypher.shift()); } } else { //if negative number, turns to positive, pop and unshift for (i = 0; i < Math.abs(shift); i++) { cypher.unshift(cypher.pop()); //cypher.push(cypher.shift()); } } console.log("alphabet : " + alphabet); console.log("cypherla : " + cypher); for (j = 0; j < word.length; j++) { let char1 = word.charAt(j); console.log(char1); for (k = 0; k < alphabet.length; k++) { //let char2 = alphabet[k]; if (char1 === alphabet[k][0]) { newWord.push(cypher[k][0]); break; } else if (char1 === alphabet[k][1]) { newWord.push(cypher[k][1]); break; } else if (char1 === ',' || char1 === ' ' | char1 === '!') { newWord.push(char1); break; } } } console.log(newWord); let lastWord = newWord.join(""); //join array elements to a string without any separator "" console.log(lastWord); return lastWord; // console.log(lastWord.replace(/,/g, "")); } module.exports = caesar