Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2017, 20:54
Новичок на форуме
Отправить личное сообщение для jamesson Посмотреть профиль Найти все сообщения от jamesson
 
Регистрация: 02.07.2017
Сообщений: 6

Суммирование букв алфавита
Разъясните плиз, каким образом каждую букву алфавита прикрепить к условной порядковой цифре, чтобы при вводе в input (html) букв эти условные суммировались и выводились в отдельный div после нажатия кнопки.
Сложно ли это реализовать?

Например Буква А=1 , Б=2, В=3 и тд, но последняя будет 9, дальше нумерация следующих уква начинается по кругу с еденицы. т.е. буква М например будет не 22, а 3
А 1
Б 2
В 3
Г 4
Д 5
Е 6
Ж 7
З 8
И 9
К 1
Л 2
М 3
Н 4

Последний раз редактировалось jamesson, 02.07.2017 в 20:57.
Ответить с цитированием
  #2 (permalink)  
Старый 02.07.2017, 21:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

jamesson,
а где Ё?
Ответить с цитированием
  #3 (permalink)  
Старый 02.07.2017, 21:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Код символов алфавита идет по порядку. По маске последние три бита и будут давать нужный результат.
Ответить с цитированием
  #4 (permalink)  
Старый 02.07.2017, 21:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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>
Ответить с цитированием
  #5 (permalink)  
Старый 02.07.2017, 21:49
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

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) // результат

Последний раз редактировалось Teamur, 02.07.2017 в 21:57.
Ответить с цитированием
  #6 (permalink)  
Старый 02.07.2017, 22:10
Новичок на форуме
Отправить личное сообщение для jamesson Посмотреть профиль Найти все сообщения от jamesson
 
Регистрация: 02.07.2017
Сообщений: 6

Все ок, но если одно но
Сообщение от рони Посмотреть сообщение
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>
А можно ли сумму например 37 разложить на единичные числа и сложить между собой (3+7)=1 , чтобы число 10 получаемое сумировалось тоже, т.е. если итог дует 13, то в сумме выйдет 4
Ответить с цитированием
  #7 (permalink)  
Старый 02.07.2017, 22:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от jamesson
А можно ли сумму например 37 разложить на единичные числа и сложить между собой (3+7)=1 , чтобы число 10 получаемое сумировалось тоже, т.е. если итог дует 13, то в сумме выйдет 4
не осилил
и смотрите прошлый пример
перед строкой 23
добавить
for (; (res += "").length > 1;) res = res.split("").reduce(sum, 0);

это если из 37 сделать 1 , откуда вы остальное взяли одному вам известно
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2017, 22:45
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от jamesson Посмотреть сообщение
А можно ли сумму например 37 разложить на единичные числа и сложить между собой (3+7)=1 , чтобы число 10 получаемое сумировалось тоже, т.е. если итог дует 13, то в сумме выйдет 4
Так функция getDigitSum именно это и делает...

https://javascript.ru/forum/misc/695...tml#post457247
Ответить с цитированием
  #9 (permalink)  
Старый 02.07.2017, 22:49
Новичок на форуме
Отправить личное сообщение для jamesson Посмотреть профиль Найти все сообщения от jamesson
 
Регистрация: 02.07.2017
Сообщений: 6

Ошибка, не хочет
Добавил, выдает результат всегда 0
Ответить с цитированием
  #10 (permalink)  
Старый 02.07.2017, 23:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод букв в двоичную систему счисления andrewvas Общие вопросы Javascript 19 08.03.2018 11:43
Суммирование значений ячеек таблиц (значения подставляются динамически) andrjuxa_z Общие вопросы Javascript 1 05.01.2016 15:15
Суммирование значений по всем динамически добавленным полям Joliat Общие вопросы Javascript 2 12.02.2014 16:01
Обратный порядок букв в каждом втором слове MSiUzaQ Общие вопросы Javascript 9 04.06.2013 21:03
Проверка текста на наличие в нем букв zoibana Общие вопросы Javascript 1 03.02.2009 15:48