var massive = [];
var newMass = massive.push(count1, count2, count3, count4, count5, count6, count7, count8, count9, count0);
var largest = Math.max.apply(null, massive); // выявляем макс. число
if (count1 == largest){
final.innerHTML += "<strong>1</strong> : " + "<em>" + largest + " ; ";
}
if (count2 == largest){
final.innerHTML += "<strong>2</strong> : " + "<em>" + largest + " ; ";
}
if (count3 == largest){
final.innerHTML += "<strong>3</strong> : " + "<em>" + largest + " ; ";
}
if (count4 == largest){
final.innerHTML += "<strong>4</strong> : " + "<em>" + largest + " ; ";
}
if (count5 == largest){
final.innerHTML += "<strong>5</strong> : " + "<em>" + largest + " ; ";
}
if (count6 == largest){
final.innerHTML += "<strong>6</strong> : " + "<em>" + largest + " ; ";
}
if (count7 == largest){
final.innerHTML += "<strong>7</strong> : " + "<em>" + largest + " ; ";
}
if (count8 == largest){
final.innerHTML += "<strong>8</strong> : " + "<em>" + largest + " ; ";
}
if (count9 == largest){
final.innerHTML += "<strong>9</strong> : " + "<em>" + largest + " ; ";
}
if (count0 == largest){
final.innerHTML += "<strong>0</strong> : " + "<em>" + largest + " ; ";
}
test.innerHTML = ""; // к концу прогона делаем все переменные пустыми,что-бы перезаписать в них новые числа
arr = "";
test.innerHTML = sorts;
} // конец фор
} // конец функции
Надо сделать из final строку вида(1:17 где 1 цифра, а 17 сколько раз она повторилась),а потом массив;
Весь проект https://codepen.io/Pikromat/pen/dgRWNE
По ссылке что ты кинул в div-е с id final уже записаны строки вида 6 : 14 ; 7 : 16 ; 2 : 13 ; 4 : 15 ; 8 : 16 ;.
Я вижу что значение в этой строке ты генерируешь самостоятельно. Значит у тебя есть данные, которые нужны для генерации это строки. Значит ты можешь взять эти данные и получить
строку вида(1:17 где 1 цифра, а 17 сколько раз она повторилась),а потом массив;
Напиши что дано и что нужно получить. Потому что сгенерировать строку а потом получить из нее данные - по-ненужному сложный путь.
Строка, то строка, но не то, этот код должен вычислять что-то типа вероятности выпадения чисел от 0 до 9, final.innerHTML, должна быть вида 1:17; 2:20 и т.п ( где 1,2 это цифры которые учавствовали в повторении, а 17,20 кол-во их повторений), и к примеру вы видите, что в final выведено 5 раз значения, так мне нужен код, чтобы их сравнить и вывести наибольшее, а для этого нужно приводить в массив(желательно), и что-бы в итоге было выведено наибольшее число типа(1:17),
var node = document.getElementById('input')
var inputString = node.textContent // получаем чисто строку текста без формтирования и тегов
var valuPairs = inputString.split(';') // получаем массив строк вида 3 : 16, плюс будут "мусорные" строки без пар цифр из-за последнего ;
// Это важный момент - с помощью массива мы моделируем, "кодируем" часть предметной области.
// на 0 месте будет количество повторений цифры 0, на 1 месте - количество повторений цифры 1 итд итд.
// позже мы будем увеличивать соответствующие количетва встречаний цифр
var frequency = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
// пробегаемся по valuPairs, преобразовываем строку с числом в число, суммируем количество повторений, не забываем про "мусорные" строки, которые просто не обрабатываем
for (var i = 0; i < valuPairs.length; i++) {
var pairString = valuPairs[i].trim() // убираем пробелы из строк
if (pairString) { // отсекаем мусорные пустые строки
var values = pairString.split(':')
var digit = parseInt(values[0].trim()) // преобразовали цифру к числу
var occurances = parseInt(values[1].trim()) // преобразовали строку с количеством повторений к числу
frequency[digit] = frequency[digit] + occurances // инкрементируем значение в результирующем массиве
}
}
alert(frequency.join(' '))
Я обычно не решаю задачи целиком ибо это часто неэтично. Но увидел что ты проделал/а некоторую работу самостоятельно.
Скорее всего тебе нужно было разобраться самостоятельно с проблемой, придумать алгоритм или это было тестовое задание для чего-то.
Приходи в следующий раз с проблемой, но не целой задачей. Например “как преобразовать строку в массив чисел” или “как лучше закодировать частоту встречания цифр”.
Спасибо, но почему выводятся просто цифры, я хотел что-то типа (2:20); и вот скриншот с итоговой строкой, хотелось бы сравнить, к примеру постовим по клику кнопки через for не 5, а 100 повторений, иотелось бы сравнить, каких цифр больше и сколько, я применял уже в коде Math.max.apply, но как это применить тут?
Если я верно понимаю задачу, то массива frequency достаточно чтобы создать строку вида 2:20. Что-то вроде (без учета разметки html)
var arr = [65, 4, 3, 12, 33, 1, 45, 2, 18, 4]
var str = ''
for (var i = 0; i < arr.length; i += 1) {
str = str + i + ' : ' + arr[i] + ' ; '
}
alert(str)
Вообще не понимаю о чем ты. Какие повторения?
Эту информацию можно получить из массива frequency в моем примере. Число из массива - это количество повторений цифры. А цифра - это индекс этого числа. Т.е. если бы у цифры 0 было 5 повторений, у цифры 3 5 повторений а у всех других цифр 0 повторений, то массив выглядит как [5, 0, 0, 5, 0, 0, 0, 0, 0, 0] .
С точки зрения исходного кода генерация строки и анализ в ней цифр - две не связанные задачи. Сначала пиши код который генерирует строку с числами, а потом запускай часть кода которую я дал что анализирует строку. Пытаться описать эти действия в одном цикле или вместе - необоснованное сильное усложнение.
Ты это можешь - найти максимальное число из массива. А потом найти индекс этого числа - индекс и будет цифрой которая встречается максимальное количество раз.
Если ты возьмешь код решения из этого комментария и подставишь результат в var arr из этого комментария, то получишь цифру и максимальное количество (суммарное) ее появления в строке со скриншота.
var node = document.getElementById('final');
var inputString = node.textContent // получаем чисто строку текста без формтирования и тегов
var valuPairs = inputString.split(';') // получаем массив строк вида 3 : 16, плюс будут "мусорные" строки без пар цифр из-за последнего ;
// Это важный момент - с помощью массива мы моделируем, "кодируем" часть предметной области.
// на 0 месте будет количество повторений цифры 0, на 1 месте - количество повторений цифры 1 итд итд.
// позже мы будем увеличивать соответствующие количетва встречаний цифр
var frequency = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
// пробегаемся по valuPairs, преобразовываем строку с числом в число, суммируем количество повторений, не забываем про "мусорные" строки, которые просто не обрабатываем
for (var i = 0; i < valuPairs.length; i++) {
var pairString = valuPairs[i].trim() // убираем пробелы из строк
if (pairString) { // отсекаем мусорные пустые строки
var values = pairString.split(':')
var digit = parseInt(values[0].trim()) // преобразовали цифру к числу
var occurances = parseInt(values[1].trim()) // преобразовали строку с количеством повторений к числу
frequency[digit] = frequency[digit] + occurances // инкрементируем значение в результирующем массиве
}
}
var maxVal = frequency[0]
var maxFigure = 0
for (var i = 0; i < frequency.length; i++) {
if (maxVal < frequency[i]) {
maxVal = frequency[i]
maxFigure = i
}
}
alert(maxFigure + ' : ' + maxVal)