0
我需要編寫一個函數,該函數可以創建一個介於1和20之間的隨機數組,並在表中打印每個數字。如果它是已經生成的數字的副本,則需要用紅色突出顯示。Javascript - 將數組中的重複項寫入html
我的問題是,在第一個副本已經打印成紅色後,如果有另一個,它不會被打印成紅色。我無法讓它工作一次以上。
下面是輸出:
這裏是我的代碼:
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'總是會在第一次迭代時返回... – Johan