Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получение описания букв из случайно-сгенерированной строки (https://javascript.ru/forum/misc/70513-poluchenie-opisaniya-bukv-iz-sluchajjno-sgenerirovannojj-stroki.html)

ekzecute 11.09.2017 17:13

Получение описания букв из случайно-сгенерированной строки
 
Добрый день!

Ребят, честно говоря, я не знаю, есть ли метод в JS, который поможет в данном случае, но нагуглить не смог, поэтому пишу сюда.

Есть некий генератор, который выдает 3 случайные буквы на латинице, по нажатии на гиперссылку(например: DGU, NUQ, KOI и т.п.) - это работает ок.

После того, как сгенерировалось это случайное сочетание букв, необходимо в другом поле выводить расшифровку каждой из трех букв.

Например: Сгенерировалось "FGH", а в соседнем поле сразу же подтянулась строка "F - Fruit, G - Global, H - High"

За любую помощь буду очень благодарен!:)

j0hnik 11.09.2017 17:23

Откуда брать расшифровку?

ekzecute 11.09.2017 17:26

Расшифровка будет забита через var, как переменные, например: var H = "High"

рони 11.09.2017 17:28

j0hnik,
ABC

Nexus 11.09.2017 17:31

ekzecute,
var F='First',
	S='Second',
	T='Third';

alert('FST'.split('').map(function(char){
	return !!window[char=char.toUpperCase()]?window[char]:null;
}).join('; '));

ekzecute 11.09.2017 17:35

Nexus, спасибо большое!

j0hnik 11.09.2017 17:36

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div></div>
	<div></div>
	<script>

		var word='', letter='', i = 3, arr = ['Apple', 'Body', 'Can','Different', 'Fruit', 'Globe', 'Happy', 'Ice-cream', 'Joy', 'Kite','Lemon', 'Monkey', 'Nine', 'October', 'Push', 'Quit', 'Rabbit', 'School', 'Table', 'Uncle', 'Verbs', 'World', 'Xylophone', 'Year', 'Zebra'];
		while(i--) {
			var a = arr[Math.floor(Math.random() * arr.length)], b = a.charAt(0);
			letter+= b;
			word+= b+'-'+a+', ';
		}
		var div = document.querySelectorAll('div');
		div[0].textContent = letter;
		div[1].textContent = word;

	</script>
</body>
</html>

ekzecute 11.09.2017 17:38

j0hnik,
это то, что нужно, спасибо!!:yes:

vitek-82 12.09.2017 00:03

j0hnik, у меня вопрос один, маленький. В строке 3 есть код b = a.charAt(0), я использовал следующий b = a[0], результат тот же, может вы сможете объяснить почему использовали именно charAt()? Спасибо.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div></div>
<div></div>
<script>

var word='', letter='', i = 3, arr = ['Apple', 'Body', 'Can','Different', 'Fruit', 'Globe', 'Happy', 'Ice-cream', 'Joy', 'Kite','Lemon', 'Monkey', 'Nine', 'October', 'Push', 'Quit', 'Rabbit', 'School', 'Table', 'Uncle', 'Verbs', 'World', 'Xylophone', 'Year', 'Zebra'];
        while(i--) {
            var a = arr[Math.floor(Math.random() * arr.length)], b = a[0];
            letter+= b;
            word+= b+'-'+a+', ';
        }
        var div = document.querySelectorAll('div');
        div[0].textContent = letter;
        div[1].textContent = word;


</script>
</body>
</html>

рони 12.09.2017 01:32

vitek-82,
charAt метод специально для строки, извлечь символ согласно указанной позиции, и было время, что извлечь по индексу из строки было нельзя, в некоторых браузерах, поэтому часто делали так str.split("")[0], но наверно лучше, если у строки есть свой метод, то использовать его, сейчас можно и так и так, что быстрее и 100% сработает, надо смотреть.


Часовой пояс GMT +3, время: 06:54.