簡體   English   中英

查找數組的交集以查找hcf

[英]finding intersection of arrays to find hcf

第一個函數可以找到數量因子並可以正常工作。

 //first find divisors of a number function divisors(n) { var result = []; for (var i = 1; i <= n; i++) { if ((n % i) == 0) { result.push(i); } } return result; } //the following gives problems function commonTerms(arr1, arr2) { var arr1 = []; arr2 = []; common = []; var m = Math.min(arr1.length, arr2.length); for (var i = 0; i < arr1.length; i++) { for (var j = 0; j < arr2.length; j++) { if ((arr1(i)) == (arr2(j))) { common.push(arr1(i)); } else { continue; } } } return common; } var x = parseInt(prompt("number to find divisors of?")); document.write(divisors(x)); var y = parseInt(prompt("number to find divisors of?")); document.write("<br>" + divisors(y)); alert(commonTerms(divisors(x), divisors(y))); 
 <!DOCTYPE html> <html> <head> <link href="css/styles.css" rel="stylesheet"> </head> <body> <h1>GCD</h1> <p>This is my first website <br>finding div</p> </body> </html> 

它不會返回任何東西,第二個功能是給我麻煩的那個。 我已經看了一個小時了。 開始自己學習編程。 謝謝您的幫助。

問題是您正在訪問如下數組項: arr(i) 您應該使用方括號:

if ((arr1[i])==(arr2[j])){
      common.push(arr1[i]);
      //...
}

而且您根本不需要圓括號。 另外,您最好使用嚴格比較===而不是== )。

因此它將是:

if (arr1[i] === arr2[j]){
      common.push(arr1[i]);
      //...
}

順便說一句考慮檢查這個問題

首先,用if ((arr1[i])==(arr2[j]))代替if ((arr1(i))==(arr2(j)))

其次,刪除var arr1=[]; arr2 =[]; var arr1=[]; arr2 =[]; 因為它們是接收到的參數,並保留var common=[]

我也會在循環中使用m ,因為我猜這是您的意圖

正如我已經評論過的,您正在重置參數,因此它不起作用。 檢查以下代碼。

 //first find divisors of a number function divisors(n) { var result = []; for (var i = 1; i <= n; i++) { if ((n % i) == 0) { result.push(i); } } return result; } //the following gives problems function commonTerms(arr1, arr2) { common = []; var m = Math.min(arr1.length, arr2.length); for (var i = 0; i < arr1.length; i++) { for (var j = 0; j < arr2.length; j++) { if ((arr1(i)) == (arr2(j))) { common.push(arr1(i)); } else { continue; } } } return common; } var x = parseInt(prompt("number to find divisors of?")); document.write(divisors(x)); var y = parseInt(prompt("number to find divisors of?")); document.write("<br>" + divisors(y)); alert(commonTerms(divisors(x), divisors(y))); 
 <!DOCTYPE html> <html> <head> <link href="css/styles.css" rel="stylesheet"> </head> <body> <h1>GCD</h1> <p>This is my first website <br>finding div</p> </body> </html> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM