Как реализовать шифрование слова цифрами?
Подскажите, как реализовать шифрование слова цифрами? Первой букве, а так же всем ее повторениям присваивается 0, следующей 1, и т.д. Регистр не учитывается. Пример: hello -> 0.1.2.2.3 hellohello -> 0.1.2.2.3.0.1.2.2.3
У меня получилось сделать без учета повторения
function wordPattern(word) {
let count = 0;
let arr = word.toString().toUpperCase().split("");
for (let i=0, i<arr.lenght, i++) {
arr[i] !== arr[i+1] ? arr[i] = count & count++ : arr[i] = count
}
return arr.join (".") ;
}
console.log(wordPattern("hellohello"));
Есть мысли, что надо через forEach, но как сделать не пойму
Ответы (1 шт):
Автор решения: renich
→ Ссылка
- Разбиваем строку на символы, используя
split. - С помощью
Setсоздаём массив с уникальными символами. - Заменяем каждый символ оригинальной строки индексом массива с уникальными символами.
const str = "hElLoHellO";
const splited = str.toLowerCase().split('');
const unique = [...new Set(splited)];
const res = splited.map(item => unique.indexOf(item)).join('.');
console.log(res);