2017-04-08 84 views
5

我需要一個JavaScript代碼,可以在1到10之間生成3個數字100次。它應該在以逗號分隔的新行上顯示每組3個數字,以及還會顯示生成的數字總數等於7的總次數(也在 單獨一行中)。 示例輸出格式應如下: 號中置1是:10,7,8 號中置2是:5,1,7 代碼我有因某種原因不能正常工作以逗號分隔的新行顯示每組3個數字

<html> 
<head> 
    <title>Day 3 - Example 7</title> 
</head 
<body> 

<script language="javascript"> 
    // count number of times seven was generated 
    var i,num,n,num1,num2,cnt=0; 
    n=100; 
    for(i=1; i<=n; i++){ 
     num = Math.floor(Math.random()*10+1); 
     num1 = Math.floor(Math.random()*10+1); 
     num2 = Math.floor(Math.random()*10+1); 
     document.write("Number Set " +i+ is + num,+ num1, +num2); 

     if (num == 7) { 
      cnt++; 
     > } 
    } 
    document.write("<br>Total number of Sevens: " + cnt); 

</script> 
</body> 
</html 
+0

你可以指定你有確切的問題?另外,document.write中的單詞「is」沒有定義,是嗎?如果是這樣,你應該在逗號不需要的地方封裝引號和加號。 –

+0

@Pineda逗號很好,它只是「is」和逗號OP必須刪除後的加號(+)符號。 –

+0

你必須檢查'num1 === 7'和'num2 === 7'! –

回答

0

使用此行:document.write("Number Set "+i+" is "+ num +","+num1 +","+num2);

+0

「is」沒有被定義... – Pineda

+0

已經修復了它 – hmpphep

1

您需要在您的document.write()調用中引用字符串。

document.write("Number Set " +i+ " is " + num + ", " + num1 + ", " +num2 + '<br>'); 
+1

不需要'\ n'換行符? – Pineda

+0

@Pineda好點,但它應該是'
' – Barmar

1

您發佈的代碼看起來是正確的根據您的描述保存了一些小錯誤。我已經清理了它,並使它在Stack Overflow的這裏可以運行。

var i, num, n, num1, num2, cnt = 0; 
 
n = 100; 
 
for (i = 1; i <= n; i++) { 
 
    num = Math.floor(Math.random() * 10 + 1); 
 
    num1 = Math.floor(Math.random() * 10 + 1); 
 
    num2 = Math.floor(Math.random() * 10 + 1); 
 
    console.log("Number Set", i, "is", num, num1, num2); 
 
    if (num == 7) { 
 
    cnt++; 
 
    } 
 
} 
 
console.log("<br>Total number of Sevens: " + cnt);

注:當你一個字符串,當你已經做了數之間用+,數量將被轉換成字符串,然後這兩個字符串將被追加。逗號(,)將追加由空格分隔的值。我始終使用逗號使其清晰和一致。爲了便於閱讀,我還分出了一些內容,並使用console.log,以便我們可以看到格式更改的結果。

1

有幾個問題與您的代碼:您正試圖發送一個字符串使用document.write,但沒有正確格式化它

1)。任何只是一個字符串而不是某種變量的東西都需要用引號引起來。在你的情況下,這包括:'是'和逗號(',')。

(我已經把每行<p>標籤內,以確保它得到輸出到一個新行)

2)還有對你的代碼的一端必須是一個流浪>字符除去。

下面是修改後的代碼示例:

var i,num,n,num1,num2,cnt=0; 
 
n=100; 
 

 
for(i=1; i<=n; i++){ 
 
    num = Math.floor(Math.random()*10+1); 
 
    num1 = Math.floor(Math.random()*10+1); 
 
    num2 = Math.floor(Math.random()*10+1); 
 
    
 
    document.write("<p>Number Set " + i + " is " + num + ", " + num1 + ", " + num2 + "</p>"); 
 
    
 
    if(num == 7){ 
 
    cnt++; 
 
    } 
 
} 
 
document.write("<br>Total number of Sevens: " + cnt);

1

你已經兩個問題:

  1. <head>元素沒有正確關閉。
  2. 在大部分地區你都有一些語法錯誤。

考慮這個例證如下:

<html> 
 
<head> 
 
    <title>Day 3 - Example 7</title> 
 
</head> 
 
<body> 
 

 
<script language="javascript"> 
 
    // count number of times seven was generated 
 
    var i,num,n,num1,num2,cnt=0; 
 
    n=100; 
 
    for(i=1; i<=n; i++){ 
 
    num = Math.floor(Math.random()*10+1); 
 
    num1 = Math.floor(Math.random()*10+1); 
 
    num2 = Math.floor(Math.random()*10+1); 
 
    console.log("Number Set " +i + " is --> "+ num +", "+ num1 +" ," +num2); 
 
    if(num == 7){ 
 
     cnt++; 
 
    } 
 
    } 
 
    document.write("<br>Total number of Sevens: " + cnt); 
 

 
</script> 
 
</body> 
 
</html

可以更換console.log()這個是你想要的:

document.write("Number Set " +i+ " is " + num + ", " + num1 + ", " +num2); 
1

var n = 100, 
 
    counter = 0; 
 
for (var i = 1; i <= n; i++) {      // repeat this n times 
 
    var text = "Number Set " + i + " is:";    // text of this set 
 
    for(var j = 0; j < 3; j++) {      // repeat this 3 times 
 
    var num = Math.floor(Math.random() * 10) + 1; // get a random number between 0 an 10 
 
    text += (j? ", ": " ") + num;     // add it to this set's text 
 
    if(num === 7)         // if the random number is seven 
 
     counter++;          // then increment the counter 
 
    } 
 
    document.write(text + "<br>");      // show this set's text 
 
} 
 

 
document.write("Total number of Sevens: " + counter + "<br>"); // the seven's count

+0

如何向數字集添加逗號? – Carlos

+0

@Carlos改變這個:'text + =「」+ num;'對此:'text + =(j?「,」:「」)+ num;'(如果'j!= 0'就是'' ,「+ num',否則是'」「+ num')! –

+0

@ ibrahim mahrir偉大的答案,但我的意思是數字1,2,3號昏迷 – Carlos

0

有足夠的評論者指出了文檔寫入的錯誤 - 雖然我只是添加了一個版本,可以用一點更優雅的方式解決問題。

var setSize = 3, 
 
    totalSize = 100, 
 
    magicNumber = 7, 
 
    magicCounter = 0, 
 
    i = setSize * totalSize, 
 
    set = []; 
 
    
 
do { 
 
    // push random number into set 
 
    set.push(Math.floor(Math.random() * 10 + 1)); 
 
    
 
    // decrement the counter 
 
    i -= 1; 
 
    
 
    // jump to the next iteration, if the set is not complete 
 
    if (set.length !== setSize) { 
 
    \t continue; 
 
    } 
 
    
 
    console.log("Number set is", set.join(', ')); 
 

 
    // reduce the array into the sum of items and check if equal 7 
 
    if (set.reduce(function(a, b) { return a + b; }, 0) === magicNumber) { 
 
     magicCounter += 1; 
 
    } 
 
    
 
    // reset the set for the next line 
 
    set = []; 
 

 
} while (i > 0); 
 

 
console.log("Total number of ", magicNumber, ":", magicCounter);