2016-07-22 40 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