用于确定数组元素是否已存在的Javascript函数

用于确定数组元素是否已存在的Javascript函数,javascript,arrays,random,duplicates,Javascript,Arrays,Random,Duplicates,所以我正在编写一些代码,它将生成一个介于1到20之间的随机数十次,将其添加到一个数组中,然后将其显示在一个表中。如果一个数字出现多次,它将在表中显示为红色。我在创建函数时遇到问题,该函数将计算随机数以确定它是否为随机数并将其变为红色。非常感谢您的帮助 var i; var myarray = new Array(); document.writeln("<table>"); document.writeln("<th>

所以我正在编写一些代码,它将生成一个介于1到20之间的随机数十次,将其添加到一个数组中,然后将其显示在一个表中。如果一个数字出现多次,它将在表中显示为红色。我在创建函数时遇到问题,该函数将计算随机数以确定它是否为随机数并将其变为红色。非常感谢您的帮助

var i;
        var myarray = new Array();



        document.writeln("<table>");
        document.writeln("<th> Index </th>");
        document.writeln("<th> Number </th>");

        for (i = 1; i <= 10; i++){

            //numberExists(); 

            var min = 1;
            var max = 20;
            var randomnum = Math.floor(Math.random() * (max - min + 1)) + min;
            var mynum = parseInt (randomnum );

            myarray[i] = mynum;


        document.writeln("<tr>");
        document.writeln("<td>" + i + "</td>");
        document.writeln("<td>" + myarray[i] + "</td>");
        document.writeln("</tr>");
        }

        document.writeln("</table>");

        //function numberExists(mynum, myarray){
            // Can't figure out the code that goes here
        //}
vari;
var myarray=新数组();
文件。书面形式(“”);
书面文件(“索引”);
书面文件(“编号”);

对于(i=1;iEDIT):如果您正在寻找一个实用的解决方案,请按照注释中的建议使用
indexOf
。如果您正在寻找正确的算法方法(这将不需要线性查找时间并导致渐进更快的算法,请遵循我最初的建议:

将数字作为密钥存储在对象中

var myNumbers = {};

...

myNumbers[mynum] = true; // add it to the object

if (myNumbers[mynum]) {
  console.log("The number has already been added");
} else {
  console.log("This is a new number");
}

下面是如何测试
mynum
是否已在
myarray
中,并相应地更改颜色:

var i;
        var myarray = new Array();



        document.writeln("<table>");
        document.writeln("<th> Index </th>");
        document.writeln("<th> Number </th>");

        for (i = 1; i <= 10; i++){



            var min = 1;
            var max = 20;
            var randomnum = Math.floor(Math.random() * (max - min + 1)) + min;
            var mynum = parseInt (randomnum );
            var color="black";
            if(myarray.indexOf(mynum) > -1){
            color="red";
            }       
            myarray[i] = mynum;


        document.writeln("<tr>");
        document.writeln("<td>" + i + "</td>");
        document.writeln("<td><font color="+color+">" + myarray[i] + "</td>");
        document.writeln("</tr>");
        }

        document.writeln("</table>");
vari;
var myarray=新数组();
文件。书面形式(“”);
书面文件(“索引”);
书面文件(“编号”);
对于(i=1;i-1){
color=“红色”;
}       
myarray[i]=mynum;
文件。书面形式(“”);
书面文件(“+i+”);
document.writeln(“+myarray[i]+”);
文件。书面形式(“”);
}
文件。书面形式(“”);

您正在寻找的几乎就是它,但它只应该检查密钥是否存在,因为如果遇到
0
它将无法工作哇,我很惊讶我错过了这么简单的内容。谢谢您的快速回复!