Javascript 在随机数组中计数

Javascript 在随机数组中计数,javascript,Javascript,所以我试图找出从0到10的每个数字中有多少是在一个随机数组中生成的。 我创建了一个随机数组列表 i=0; var ranList=[]; while (i<20){ i++; ranList.push(Math.floor(10*Math.random())); } //count each number document.write(ranList.sort().join("<br>")); /*The

所以我试图找出从0到10的每个数字中有多少是在一个随机数组中生成的。 我创建了一个随机数组列表

    i=0;
    var ranList=[];
    while (i<20){
      i++;
      ranList.push(Math.floor(10*Math.random()));
    }
    //count each number
    document.write(ranList.sort().join("<br>"));

/*Then I made a function to count /elements from this array 
*/


    function ctnumber(array,elem){
      var ct=0;
      var j =0;
        while(j<array.length)
        {
        j++;
          if(array[j]==elem){
          ct+=1;}
         }
      }
      return ct;
      }
      alert(ctnumber(ranList,5));
i=0;
var ranList=[];

(i首先,应避免使用变量的名称数组:

你的括号也错了。将你的函数更改为此,它应该可以工作:

function ctnumber(arr,elem){
      var ct=0;
      var j =0;
        while(j<arr.length)
        {
        j++;
          if(arr[j]==elem){
          ct+=1;}
         }
      return ct;
      }
功能ctnumber(arr,elem){
var-ct=0;
var j=0;

while(j正如Pardeep在其评论中所述,代码的问题在于,在第二个
while
循环中,在
ct+=1;
之后有一个额外的
}

正确的代码是:

i=0;
var ranList=[];
而(i<20){
i++;
ranList.push(Math.floor(10*Math.random());
}
//数一数
document.write(ranList.sort().join(“
”); 函数编号(数组、元素){ var-ct=0; var j=0; while(j
我还建议进行一些代码清理:

var i = 0;
var ranList = [];
while (i < 20) {
    i++;
    ranList.push(Math.floor(10 * Math.random());
}

function countNumbers(list, elem) {
    var count = 0;
    // For loops are generally more readable for looping through existing lists
    for (var i = 0; i < list.length; i++) {
        if (list[i] == elem) {
            count++;
        }
    }
    return count;
}
alert(countNumber(ranList, 5));
var i=0;
var ranList=[];
而(i<20){
i++;
ranList.push(Math.floor(10*Math.random());
}
函数计数编号(列表、元素){
var计数=0;
//对于在现有列表中循环,For循环通常更具可读性
对于(变量i=0;i

请注意,
console.log()
是一个更好的调试工具,它可以通过Firefox和Chrome/IE中的
F12
访问。

如果您稍微清理一下代码,并按原样显示代码,而不是按两段代码显示,可能会有所帮助。“不执行”?!就像?!我们不能告诉你为什么这是基于你所展示的。你知道Javascript控制台吗?它会给你语法错误和运行时错误的信息。因为额外的右括号。你在
ct+=1
之后有一个额外的
}
。这并不能回答问题,最好作为一个注释。谢谢你,这就解决了问题。出于某种原因,数组作为变量没有出现问题,可能是因为它在较低的映射上…@user5723270应该没有理由将
array
作为变量名引起问题,除非你使用的是第三方库,它对数组做了一些事情。
array
带大写字母
a
是数组派生自的对象。但是,正如这个答案中所述,给任何变量指定一个与内置类型或函数相同的名称(即:数字、对象、数组、字符串、数学等)通常不是一个好主意。谢谢,我正在使用安卓应用程序aide Web进行编码,我将了解如何使用其中的控制台
var i = 0;
var ranList = [];
while (i < 20) {
    i++;
    ranList.push(Math.floor(10 * Math.random());
}

function countNumbers(list, elem) {
    var count = 0;
    // For loops are generally more readable for looping through existing lists
    for (var i = 0; i < list.length; i++) {
        if (list[i] == elem) {
            count++;
        }
    }
    return count;
}
alert(countNumber(ranList, 5));