Задать вопрос

Как рандомно заменить буквы в строке, которые схожи с массивом?

Добрый день! Нужна помощь в доработке небольшого скрипта.

Сейчас он меняет буквы во всей строке, но не понимаю как его правильно дописать нужно..
Нужно чтобы функция рандомно это делала. К примеру 1,3 и 6 букву в строке только.

Пример как должно быть:
Было "Слово 1 слово 2"
Стало "Čлоβо 1 слÒво 2"

function translitEu(word){
		let answer = '';
		const converter = {
			'а': ['ǻ','α','ά','ẫ','ắ','ằ','ẳ','ẵ','ª','ä','å','ã','â','à','á'],
			'б': ['ҕ','Ϭ','ϭ','ɓ'],
			'в': ['β','ß','Ɓ'],
			'д': ['∂'],
			'е': ['℮','ē','ė','ě','ę','ê','é','è','ҿ'],
			'ж': ['җ','ӝ','ӂ'],
			'з': ['ჳ'],
			'и': ['ӥ','ҋ'],
			'к': ['k','ќ','ķ','ҝ','ᶄ','ҡ'],
			'л': ['Ꮑ'],
			'м': ['ʍ','ᶆ','ḿ'],
			'н': ['ዞ','ዟ','ӈ'],
			'о': ['ó','ό','σ','ǿ','ò','ô','ö','õ','ọ','ø','ō'],
			'р': ['թ','ρ','ҏ','ᶈ','ҏ'],
			'с': ['ç','ċ','ĉ','ς','ć','č','ḉ'],
			'т': ['τ','Ŧ','₮'],
			'у': ['ɣ','ẏ','ɤ'],
			'ф': ['ቂ','ቃ','ቄ','ቅ','ᛄ'],
			'х': ['χ','×','ẍ','ᶍ'],
			'ч': ['ӵ','ҹ'],
			'ш': ['ω'],
			'ы': ['ӹ'],
			'э': ['∌','∍','ӭ'],
	
			'А': ['Ꭿ','₳','Ǻ','Ǡ','Ắ','Ằ','Ẵ','Ä','Å','À','Á','Â','Ã','Ǟ'],
			'Б': ['Ҕ','চ','ঢ়','ƃ'],
			'В': ['Ᏸ','β','ᗷ','ᗽ','ᗾ','ᗿ','Ᏸ','ᗸ'],
			'Г': ['୮'],
			'Е': ['Ē','Ė','Ę','Ě','É','Ế','Ề','Ể','Ễ'],
			'Ж': ['Җ','Ӝ','Ӂ'],
			'З': ['ℨ'],
			'И': ['Ӥ','Ҋ'],
			'К': ['ᛕ','Ꮶ','Ķ','Ҝ','Ҡ'],
			'Л': ['ለ','ሉ','ሊ','ሌ','ል','Ꮑ'],
			'М': ['ᛖ','Ḿ','ᗰ','ᙢ'],
			'Н': ['ਮ','ዙ','ዚ','ዜ','ዝ','Ή','Ḩ','Ӈ'],
			'О': ['ტ','Ǿ','Θ','Ó','Ò','Ô','Ö','Õ','Ọ','Ō','Ő'],
			'Р': ['ℙ','Ҏ','₽','Ƿ','Ҏ'],
			'С': ['ℂ','Ç','Č','Ċ','Ĉ','Ć','Ḉ'],
			'Т': ['⍑','⍡','Ţ','Ť','Ṫ'],
			'У': ['Ꭹ','Ꮍ','ϒ'],
			'Ф': ['Փ','Ⴔ','ቆ','ቇ','ቈ'],
			'Х': ['✗','✘','᙭','Ẍ'],
			'Ч': ['੫','Ⴁ','Ӵ','Ҹ'],
			'Ш': ['ᙡ'],
			'Ы': ['Ӹ'],
			'Э': ['∋','ヨ','Ӭ','℈'],
		};

		for (var i = 0; i < word.length; ++i ) {
			if (converter[word[i]] == undefined){
				answer += word[i];
			} else {
				answer += converter[word[i]][Math.floor(Math.random()*converter[word[i]].length)];
			}
		}
	
		return answer;
	}
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
function translitEu(word, charPositions=[1,3]){
//...
    for (var i = 0; i < word.length; ++i ) {
      if (converter[word[i]] && charPositions.includes(i)){
        answer += converter[word[i]][Math.floor(Math.random()*converter[word[i]].length)];
      } else {
        answer += word[i];
      }
    }
// ...
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы