Цитата:
|
данный код уже универсален, там достаточно только указать исходные данные, он без case автоматический, осталось только остальные подсчеты сделать
|
Цитата:
|
Цитата:
2 место - ток у кого больше 1-2 мест, если одинаково то ток у кого больше 1х мест и по такому подобию называется Скейтинг |
У меня опять стопор
var reffereeGet = document.getElementsByName('refferee'); var z=0; metka1: for (var j=0; j<sumparticipant; j++) { refferee[j]=new Array(); for (var i=0; i<sumrefferee; i++) { refferee[j][i]=reffereeGet[z].value; z++; if (typeof refferee[j][i] == 'undefined' || refferee[j][i] == null || refferee[j][i] == 0) { var arb=i+1; alert ('Судья '+arb+' не определил место'); break metka1; } } } document.write('1 - '+ refferee[0][0] + '<br>2 - '+ refferee[0][1] + '<br>3 - '+ refferee[0][2] + '<br>4 - '+ refferee[0][3] + '<br>5 - '+ refferee[0][4]+ '<br><br>6 - '+ refferee[1][0] + '<br>7 - '+ refferee[1][1] + '<br>8 - '+ refferee[1][2] + '<br>9 - '+ refferee[1][3] + '<br>10 - '+ refferee[1][4]); Почему в строке 8 я не могу использовать переменную z в выражении "reffereeGet[z].value" ??? Если я ставлю i - то работает, если z - не работает. Хотя переменная z++ считается до 30 (согласно циклу) ,выводится значение А нужно это чтоб разделить одномерный массив полученный путем опроса input (var reffereeGet = document.getElementsByName('refferee'); ) на двухмерный, то есть построчно |
Цитата:
|
Цитата:
Не понятно выражение var b = a.map(()=>[]); |
Romzes,
без комментариев ... ввести места в инпуты(1...6), получить результат <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .total tr td:last-child { color: #FF0000; font-size: 28px } td { height: 22px; width: 80px; text-align: center; font-weight: bold; } </style> </head> <body> <div class="refferee"></div> <div class="total"></div> <script> function fn(f) { var c = f.map(function(a, g) { for (var d = [], b = 1, e = f.length; b <= e; b++) { var c = a.filter(function(a) { return a == b }).length; d.push(c) } return d }); c.slice(0).sort(function(a, c) { for (var d, b = 0, e = a.length; b < e; b++) if (d = c[b] - a[b]) return d; return 0 }).forEach(function(a, c) { a.push(++c) }); return c } function createTable(row, col, parent, mas) { var table = document.createElement("table"), arr = []; var f = function(a, b, c) { return function() { arr[a][b] = +c.value || 0; var res = fn(arr); out(res) } }; for (var i = 0; i < row; i++) { var tr = table.insertRow(i); arr[i] = []; for (var j = 0; j < col; j++) { var td = tr.insertCell(j); if (mas) td.textContent = mas[i][j]; else { arr[i][j] = 0; var input = document.createElement("input"); input.addEventListener("input", f(i, j, input)); td.appendChild(input) } } } parent.appendChild(table); return arr } function out(arr) { total.innerHTML = ""; createTable(arr.length, arr[0].length, total, arr) } var total = document.querySelector(".total"); var refferee = document.querySelector(".refferee"); var mas = createTable(6, 5, refferee); var res = fn(mas); out(res); </script> </body> </html> |
Ну об этом стоит почитать, метод map объекта Array и стрелочные функции
|
Цитата:
за код спасибо. буду разбираться. Правда чуть не то 1 - столбец количество 1х мест, 2 столбец - количество ПЕРВЫХ И ВТОРЫХ мест и т.д. Короче система неординарная и сложная. поскольку я новичок, сложно разобраться в Вашем коде, но я непременно постараюсь. |
Часовой пояс GMT +3, время: 09:04. |