Суммирование букв алфавита
Разъясните плиз, каким образом каждую букву алфавита прикрепить к условной порядковой цифре, чтобы при вводе в 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, время: 04:13. |