Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Калькулятор с 3 группами радио кнопок (https://javascript.ru/forum/events/67322-kalkulyator-s-3-gruppami-radio-knopok.html)

рони 13.02.2017 15:45

kirito0709,
$(function() { //когда страница готова (только html) запускаем код
    var b = [0, 0, 0], //массив для индексов нажатых кнопок
        d = [15, 3, 1]; //вес для каждого элемента массива b (это математика)
    $("#form1, #form2, #form3").each(function(e, c) { //здесь для каждого блока с указанными id объявляем функцмию с 2мя параметрами (переменная "е" это  индекс блока, c это сам блок  )
        var f = $("input", c); //ищем все инпуты в данном блоке
        $(c).on("click", "input", function(a) { // ставим на блок обработку кликов -- если жмак по инпуту  только тогда реагируем
            a = f.index(this); //видимо передаем в переменную "а" индекс кликнутой кнопки
            b[e] = a; //в массив b помещаем индекс нажатой кнопки -- у каждого блока своё и только своё место
            // условно нажимаем вторые кнопки  в каждом блоке
            // b[0] = 1
            // b[1] = 1
             //b[2] = 1
            // и того b = [1,1,1]


            a = b.reduce(function(a, b, c) {
                return a + b * d[c]
            }, 0); // идём циклом по массивам a и b  1 * 15 + 1 * 3 + 1 * 1 получили индекс для картинки  19

            $("#result").html(++a + ' картинка') //тут увеличиваем индекс  "а"  на 1 и записываем 20 (только для красы 0 -- 59 -- делаем от 1 до 60) в переменную "а" и добавляем слово картинка
        })
    })
});
;

рони 13.02.2017 16:44

все комбинации нажатий кнопок
<script>
var b = [0, 0, 0], //массив для индексов нажатых кнопок
    d = [15, 3, 1]; //вес для каждого элемента массива b (это математика  вычисляется из массива с, d = [c[1]*c[2], c[2], 1])
    c = [4, 5, 3]  //количество кнопок в каждой группе
for (var i=0; i< 60; i++)  {
var num =  b[0]*15 + b[1]*3 + b[2]*1
document.write(i + ' => ' +JSON.stringify(b)+'<br>')
b[2]++;
if (b[2] == 3 ) {b[2]=0;b[1]++}
if (b[1] == 5 ) {b[1]=0;b[0]++}
}
  </script>

kirito0709 14.02.2017 11:07

рони,
не понял вот этот кусок
d = [15, 3, 1]; //вес для каждого элемента массива b (это математика  вычисляется из массива с, d = [c[1]*c[2], c[2], 1])

А именно я не понял что такое вес массива и почему он считается именно по такой формуле. Единственное вроде подходящее определение гугл дал примерно такое (привожу то как я понял то, что нагуглил): Вес массива элемента это вероятность с которой будет выбран именно этот элемент массива...

рони 14.02.2017 11:53

kirito0709,
числа обычные: единицы десятки сотни тысячи
числа двоичные: единицы четвёрки восьмёрки
тоже самое и тут
единицы трёшки пятнашки

рони 14.02.2017 11:58

kirito0709,
[0,1,0] - 10 в десятичной
[0,1,0] - 2 в двоичной
[0,1,0] - 3 в этом коде

[1,0,0] - 100 в десятичной
[1,0,0] - 8 в двоичной
[1,0,0] - 15 в этом коде


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