Предложение алгоритма решения тестового задания?
Ваше решение не работает на примере "аб аа".

Надо чтобы разные или одинаковые буквы были на тех же местах в обоих словах. Вы же проверяете только, то нет такого, что в первом слове буквы равны, а во втором - нет. Надо еще проверять и наоборот.

Но в ваше решение еще не рассматривает крайний случай - использованы все 33 буквы алфавита и есть надо что-то менять. Тут ответ 0, потому что замены делать никак не получится - после любой замены 2 разные типа букв станут одинаковыми и перемешаются. Разделить их после этого уже не получится.

Если вы эти косяки исправите, ваше решение может не пройти по времени, потому что оно у вас за квадрат. Лучшее решение - пройтись по строкам одновременно одним циклом и запоминать в массиве, индексированном символами, (или мапе), какая буква алфавита во втором слове соответствует букве алфавита в первом слове. Если встречаете противоречие (в массиве уже что-то записано не такое как вы видите сейчас), то ответ 0.

И еще. Не надо разбивать строки через .split(''). В JavaScript можно узнать длину строк и обратиться к i-ому символу не преобразуя в массив.
Особо не вчитывался ну судя по второму примеру так как д на я заменили, а значит мы не можем сразу менять на туже букву что есть с обоих словах. Значит если у нас ограничение равное алфавиту, то если мы подадим на вход "абвгдежзийклмнопрстуфхцчшщъыьэюя яюэьыъщшчцхфутсрпонмлкйизжедгвба" , то должен вернуться 0.
P.S. Крч что-то набыдлокодил, вроде должно работать хотя далеко не самый оптимальный вариант. Ну также можно посмотреть именно вывод замен
function result(line) {
  let arr = line.split(' ');

  let word1 = arr[0].split('');
  let word2 = arr[1].split('');

  if (word1.length != word2.length)
    return 0;
  var abc = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";

  for (var i = 0; i < word1.length; i++)
    if (!word1.every((e, j) => (e !== word1[i]) || (e == word1[i] && word2[j] == word2[i])))
      return 0;

  var i = 0;
  while (word1.join("") != word2.join("")) {
    if (word1[i] != word2[i]) {
      var repS = word2[i];
      if (word1.join("").indexOf(repS) != -1) {
        var tempAbc = abc.split("").filter(w => word1.join("").indexOf(w) == -1);
        if (tempAbc.length == 0)
          return 0;
        repS = tempAbc.pop();
      }
      word1 = word1.join("").replace(new RegExp(word1[i], "g"), repS).split("");
      console.log(word1)

    }
    i = (i + 1) % word1.length;
  }

  return 1;
}