Javascript - 将数组中的重复项写入 html
Javascript - write duplicates in array to html
我需要编写一个函数来创建 1 到 20 之间的随机数数组,并在 table 中打印每个数字。如果它与已经生成的数字重复,则需要以红色突出显示。
我的问题是,第一个副本打印成红色后,如果有另一个,它就不会打印成红色。我无法让它工作不止一次。
这是输出:
这是我的代码:
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;
}
}
像这样更改您的 numberExists
函数。
function numberExists(num, myArray, myIndex){
for(var k = 0; k < myIndex; k++){
if(num == myArray[k])
return true;
}
return false;
}
我需要编写一个函数来创建 1 到 20 之间的随机数数组,并在 table 中打印每个数字。如果它与已经生成的数字重复,则需要以红色突出显示。
我的问题是,第一个副本打印成红色后,如果有另一个,它就不会打印成红色。我无法让它工作不止一次。
这是输出:
这是我的代码:
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;
}
}
像这样更改您的 numberExists
函数。
function numberExists(num, myArray, myIndex){
for(var k = 0; k < myIndex; k++){
if(num == myArray[k])
return true;
}
return false;
}