2016-07-22 63 views
0

我試圖在JS中按升序排列一些數字,但似乎不起作用,我得到以下控制檯日誌:[1,2,3,6,9,1 ,2,3,4,6,8,9,12,18,18,24,36,72]無法在JS中按升序排列數組項目

下面是代碼:

var firstNum = 18; 
var secondNum = 72; 
var array = []; 
var otherArray = []; 

for (i = 0; i <= firstNum; i++) { 
    if(firstNum % i === 0) { 
     array.push(i); 
    } 
} 

for (j = 0; j <= secondNum; j++) { 
    if(secondNum % j ===0) { 
     array.push(j); 
    } 
} 

for (k = 0; k < array.length; k++) { 
    if(array[k] > array[k+1]) { 
     var temp = array[k]; 
     array[k] = array[k+1]; 
     array[k+1] = temp; 
     } 
    } 


console.log(array) 
console.log(otherArray) 

欣賞的幫助。

+1

爲什麼第一和第二NUM? –

+0

你是什麼意思? –

+0

它是做什麼的?還是應該這樣做? –

回答

0

您可以修改這樣的代碼:

for (i = 0; i <= arrayX.length-1; i++) 
    { 
    if (arrayX[i] > arrayX[i+1]) 
     { 
     temp = arrayX[i+1]; 
     arrayX[i+1] = arrayX[i]; 
     arrayX[i] = temp; 
     i = i-2; 
     } 
    } 

var firstNum = 18; 
 
var secondNum = 72; 
 
var array = []; 
 
var otherArray = []; 
 

 
for (i = 0; i <= firstNum; i++) { 
 
    if (firstNum % i === 0) { 
 
    array.push(i); 
 
    } 
 
} 
 

 
for (j = 0; j <= secondNum; j++) { 
 
    if (secondNum % j === 0) { 
 
    array.push(j); 
 
    } 
 
} 
 

 
for (i = 0; i <= array.length - 1; i++) { 
 
    if (array[i] > array[i + 1]) { 
 
    temp = array[i + 1]; 
 
    array[i + 1] = array[i]; 
 
    array[i] = temp; 
 
    i = i - 2; 
 
    } 
 
} 
 
alert(array)

希望它可以幫助你:)

+0

好嗎?如果array [0]> array [1]會發生什麼? –

0
Use otherArray also like 
for (j = 0; j <= secondNum; j++) { 
    if(secondNum % j ==0) { 
     otherArray.push(j); 

    } 
} 
then print by using the same logic of temp it will give individual array output in ascending order and if you want to join two array output then use concat/merge and then print