Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-将数组中的重复项写入html_Javascript_Arrays_Duplicates - Fatal编程技术网

Javascript-将数组中的重复项写入html

Javascript-将数组中的重复项写入html,javascript,arrays,duplicates,Javascript,Arrays,Duplicates,我需要编写一个函数,创建一个介于1和20之间的随机数数组,并在表中打印每个数字。如果它是已经生成的数字的副本,则需要以红色突出显示 我的问题是,在第一份副本以红色打印后,如果有其他副本,它将不会以红色打印。我不能让它工作超过一次 以下是输出: 这是我的密码: function randomNumberTable(){ // create array with random numbers var nums = new Array(); for(var i = 0; i

我需要编写一个函数,创建一个介于1和20之间的随机数数组,并在表中打印每个数字。如果它是已经生成的数字的副本,则需要以红色突出显示

我的问题是,在第一份副本以红色打印后,如果有其他副本,它将不会以红色打印。我不能让它工作超过一次

以下是输出:

这是我的密码:

function randomNumberTable(){
    // create array with random numbers
    var nums = new Array();
    for(var i = 0; i < 10; i++){
        nums[i] = randomNumber();
    }

    // create header row
    document.writeln("<table border = \"1\">");
    document.writeln("<th>Index</th>");
    document.writeln("<th>Number</th>");

    // if duplicate, print in red, else, black
    for(var j = 0; j <= nums.length-1; j++){
        var isExist = numberExists(nums[j], nums, j);   
        if (isExist){
            document.writeln("<tr>");
            document.writeln("<td>" + j + "</td>");
            document.writeln("<td><font color=\"red\">" + nums[j] + "</font></td>");
            document.writeln("</tr>");
        }
        else{
            document.writeln("<tr>");
            document.writeln("<td>" + j + "</td>");
            document.writeln("<td>" + nums[j] + "</td>");
            document.writeln("</tr>");
        }
    }
}

// generate a random number between 1 and 20
function randomNumber(){
    var randomNum = Math.floor(Math.random()*20) + 1;
    return randomNum;
}

// checking if the number exists 
function numberExists(num, myArray, myIndex){
    for(var k = 0; k < myIndex; k++){
        if(num == myArray[k])
            return true;
        else
            return false;
    }
}
函数randomNumberTable(){
//用随机数创建数组
var nums=新数组();
对于(变量i=0;i<10;i++){
nums[i]=随机数();
}
//创建标题行
文件。书面形式(“”);
书面文件(“索引”);
书面文件(“编号”);
//如果重复,则以红色打印,否则以黑色打印

对于(var j=0;j更改
numberExists
函数,如下所示

function numberExists(num, myArray, myIndex){
    for(var k = 0; k < myIndex; k++){
        if(num == myArray[k])
            return true;
    }
    return false;
}
函数numberxsists(num、myArray、myIndex){
对于(var k=0;k
numberExists
在第一次迭代时将始终
返回
…哇,我真不敢相信我没有发现那个错误!我还以为它在randomNumberTable()for循环中,哈哈。谢谢!!