Суммирование букв алфавита
Разъясните плиз, каким образом каждую букву алфавита прикрепить к условной порядковой цифре, чтобы при вводе в input (html) букв эти условные суммировались и выводились в отдельный div после нажатия кнопки.
Сложно ли это реализовать? Например Буква А=1 , Б=2, В=3 и тд, но последняя будет 9, дальше нумерация следующих уква начинается по кругу с еденицы. т.е. буква М например будет не 22, а 3 А 1 Б 2 В 3 Г 4 Д 5 Е 6 Ж 7 З 8 И 9 К 1 Л 2 М 3 Н 4 |
jamesson,
а где Ё? |
Код символов алфавита идет по порядку. По маске последние три бита и будут давать нужный результат.
|
jamesson,
без Ё :)
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script>
window.addEventListener("DOMContentLoaded", function() {
var form = document.querySelector("form"),
input = form.querySelector("#w"),
result = document.querySelector("#result");
function sum(out, el) {
var num = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".indexOf(el.toUpperCase());
num != -1 && (num %= 9)
return out + ++num
}
form.addEventListener("input", function(event) {
var res = input.value.split("").reduce(sum, 0);
result.innerHTML = res
})
});
</script>
</head>
<body>
<form>
<input id="w" value="И" type="text">
<br>
</form>
<div id="result"></div>
</body>
</html>
|
var b="АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЬЭЮЯ";
var i=1, k=9, r={};
function num(s){
for(;i<k;i++){
r[s[i]]=i;
if(i==k){
i=1;
num(s.slice(k))
}
}
};
num(b);
alert(r) // результат
|
Все ок, но если одно но
Цитата:
|
Цитата:
и смотрите прошлый пример перед строкой 23 добавить
for (; (res += "").length > 1;) res = res.split("").reduce(sum, 0);
это если из 37 сделать 1 , откуда вы остальное взяли одному вам известно |
Цитата:
https://javascript.ru/forum/misc/695...tml#post457247 |
Ошибка, не хочет
Добавил, выдает результат всегда 0 :agree:
|
jamesson,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script>
window.addEventListener("DOMContentLoaded", function() {
var form = document.querySelector("form"),
input = form.querySelector("#w"),
result = document.querySelector("#result");
function s(out, el) {
return out + +el
}
function sum(out, el) {
var num = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".indexOf(el.toUpperCase());
num != -1 && (num %= 9)
return out + ++num
}
form.addEventListener("input", function(event) {
var res = input.value.split("").reduce(sum, 0);
for (; (res += "").length > 1;) {
res = res.split("").reduce(s, 0);
}
result.innerHTML = res
})
});
</script>
</head>
<body>
<form>
<input id="w" value="И" type="text">
<br>
</form>
<div id="result"></div>
</body>
</html>
|
Супер, помогло!
Вы настоящий Гуру! Спасибо огромное!
|
| Часовой пояс GMT +3, время: 00:34. |