L'esercizio è veramente semplice, ci vogliono cinque minuti a finirlo:

1) trasforma i due alfabeti in array con le lettere assegnate ad un index univoco,
utilizzando metodo degli array split(), nel caso sia necessario applica il
metodo stringa toLowerCase() per rendere le lettere minuscole.
Ovviamente è scontato che i due alfabeti vengano assegnati ognuno ad una variabile.

2) crea un funzione che prenda un argomento stringa
function quellochevuoi(str){}

3) rendi l'argomento passato alla funzione un array utilizzando sempre il medoto split()

4) ricava un array di index dei caratteri dall' alfabeto1 (normale)
mappa l'array ottenuto con il metodo map(letter=>...) ed utilizza al suo interno alfabeto1.indexOf(letter)
per ricavare l'indice della relativa lettera iterata da map(), cosi da ottenere per la stringa
'CANE' passata alla funzione un array index tipo [2, 0, 13, 4]

5) ottieni una stringa criptata utilizzando sempre il metodo map() su index array (punto4)
il quale passarà gli indici di alfabeto1 all'afabeto2 (criptato) per ottenere una cosa del tipo:
const stringaCripto = [2, 0, 13, 4].map(num => alfabeto2[num])
visto che map ritorna sempre un array dovrai concatenare il metodo join() per convertirlo in stringa.

6) ritorna la stringaCripto o un oggetto che contenga sia la stringa originale che quella criptata.