2013-09-01 2 views
0

У меня есть массив случайных чисел и вы хотите подсчитать количество раз, когда каждое число появляется в массиве.Назначить значение ячейке в таблице HTML

У меня есть следующий код, но я не могу определить, как назначить значения count в таблице html.

JavaScript:

<script> 
    var arr = []; 

    function getRandom(num) { 
     return Math.round(Math.random() * num) + 1; 
    } 

    for (var i = 0; i < 1000; i++) { 
     arr.push(getRandom(30)); 

    } 

    var count1 = 0; 
    var count2 = 0; 
    var count3 = 0; 
    var count4 = 0; 
    var count5 = 0; 

    for (var i = 0; i < 1000; i++) { 
     if (arr[i] == 1) { 
      count1++; 
     } 
    } 
    for (var i = 0; i < 1000; i++) { 
     if (arr[i] == 2) { 
      count2++; 
     } 
    } 
    for (var i = 0; i < 1000; i++) { 
     if (arr[i] == 3) { 
      count3++; 
     } 
    } 
    for (var i = 0; i < 1000; i++) { 
     if (arr[i] == 4) { 
      count4++; 
     } 
    } 
    for (var i = 0; i < 1000; i++) { 
     if (arr[i] == 5) { 
      count5++; 
     } 
    } 

    } 
</script> 

HTML:

<table border="1"> 
    <tr> 
     <td>Number</td> 
     <td>Frequency</td> 
    </tr> 
    <tr> 
     <td>1</td> 
     <td id="count1" </td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td id="count2"></td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td id="count3"></td> 
    </tr> 
    <tr> 
     <td>4</td> 
     <td id="count4"></td> 
    </tr> 
    <tr> 
     <td>5</td> 
     <td id="count5"></td> 
    </tr> 
    <tr> 
</table> 
+1

попробуйте сократить количество экземпляров 'для (вар я = 0; я < 1000; i ++) {'в один большой цикл. –

ответ

0

Используйте следующий код

function f(){ 
var arr = []; 

    function getRandom(num){ 
     return Math.round(Math.random() * num)+1; 
    } 
    for (var i = 0; i < 1000; i++) { 
     arr.push(getRandom(30));  
    } 
var count1=0; 
var count2=0; 
var count3=0; 
var count4=0; 
var count5=0; 


    for (i=0;i<1000;i++){ 
    if(arr[i]==1){ 
     count1++; 
     } 

    if(arr[i]==2){ 
    count2++; 
     } 

     if(arr[i]==3){ 
     count3++; 
    } 
     if(arr[i]==4){ 
     count4++; 
    } 
     if(arr[i]==5){ 
     count5++; 
     } 
    } 

document.getElementById("count1").innerHTML=count1; 
document.getElementById("count2").innerHTML=count2; 
document.getElementById("count3").innerHTML=count3; 
document.getElementById("count4").innerHTML=count4; 
document.getElementById("count5").innerHTML=count5; 
} 

Demo

+0

нет ничего, чтобы предложить OP с помощью jquery – Stuart

+0

преобразование выполнено. – Arpit

0

Было бы лучше (проще и быстрее) использовать S ecand для подсчета частот, одновременно с назначением случайных чисел, затем проверьте этот массив и поместите значения в ячейки таблицы. Кроме того, легче идентифицировать ячейки таблицы с помощью class, а не давать им все похожие id. (jsfiddle)

var arr = [], counts = [], 
    countCells = document.getElementsByClassName('count'); 

function getRandom(num) { 
    return Math.round(Math.random() * num) + 1; 
} 
for (var i = 0; i < 1000; i++) { 
    var r = getRandom(30); 
    arr.push(r); 
    counts[r] = (counts[r] || 0) + 1; 
} 
for (var i = 0; i < countCells.length; i++) { 
    countCells[i].innerHTML = counts[i + 1] || 0; 
} 
0

Не проблема, но вы могли бы упростить процесс и получить счет для всех значений:

var arr = [], 
    totals = []; 

function getRandom(num) { 
    return Math.round(Math.random() * num) + 1; 
} 

for(var i=0; i<1000; i++) { 
    var val = getRandom(30), 
     count = totals[val] || 0; 

    arr.push(val); 
    totals[val] = ++count; 
} 
Смежные вопросы