1

我有一个大小为 50 的数组,其中包含 1 到 49 之间的随机整数。

我希望能够计算 10 到 19 之间的数字在数组中出现的次数。

<script type = "text/javascript">
   var arr = [];

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

   var counter = 0;

   for (var i = 0; i < 50; i++) {
       arr.push(getRandom( 49 ));
       counter++;
   }
4

3 回答 3

1
var count=0;
for (var i=0;i<50;i++{
  if(arr[i]<19 && arr[i]>10){
    count++;
  }
}

也就是说,如果您的意思是不计算 10 和 19,如果您还想计算 10 和 19,则将限制更改为 20 和 9

于 2013-09-01T15:17:11.370 回答
0

尝试使用以下Arry.filter方法:

var nBetween10and19 = [yourArraY]
                       .filter(function(b){return b>10 && b<19;}).length;

有关旧浏览器的信息Array.filter和 shim,请参阅 MDN

于 2013-09-01T15:25:23.130 回答
0

创建一个函数总是一个好主意,因为您可以稍后使用不同的参数重用它。

我编写了一个接受最小值和最大值的函数,并计算满足限制的出现次数。

如果您不想指定它们,则可以为 min 或 max 传递 null。

function countRange(list, min, max) {
    var c = 0;
    for (var i = 0, l = list.length, item; i < l; i++) {
        item = list[i];
        if ((min == null || item >= min) && (max == null || item <= max)) {
            c++;
        }
    }
    return c;
}

countRange(arr, 10, 19); // count x >= 10 and x <= 19
countRange(arr, 10, null); // count x >= 10
countRange(arr, null, 30); // count x <= 30
于 2013-09-01T15:51:13.267 回答