2012-10-11 35 views
2

使用jQuery是否有一個函數可以告訴我數值數組的內容是否按數字順序排列?例如;jQuery - 檢查數組數組的順序

[-2,5,7,8,9,10-]將返回true [5,2,7,8,9]將返回false

場景:我這是從MySQL填充的UL中, li項目是隨機顯示的文本語句,li的id是項目應該按照正確順序排列的等級順序編號。然後用戶必須通過使用jQuery可排序的拖放來重新排序項目。當項目被丟棄時,我希望jQuery通過序列化將重新排序的項目抓成一個數組,然後我可以檢查它們是否以數字順序顯示,這將指示正確的答案。我有一切工作,我可以通過結果回到PHP驗證,然後在一個單獨的div顯示答案,但我想做的使用jQuery的客戶端檢查,而不是回發到服務器。

輕輕地對待我我是一個新手

+0

只需使用一個循環來檢查。 – nhahtdh

+0

不需要場景。 – keyser

回答

1

在這裏你去試試這個。

var arr1 = [5,2,7,8,9]; 
var arr2 = [2,5,7,8,9]; 

function isNumeric(arr) { 
    for (var i = 0; i < arr.length - 1; i++) { 
     if (arr[i] > arr[i + 1]) { 
     return false; 
     } 
    } 
    return true; 
} 

console.log(isNumeric(arr1)); 
console.log(isNumeric(arr2)); 
+0

現貨 - 非常感謝 - 當我嘗試但我錯過了專業知識的時候,我確實遇到過。 – user1737416

+0

@ user1737416 NP很高興它的作品:) –

0
var array1 = [1, 2, 3, 4, 5, 6]; 
var array2 = [1, 2, 4, 3, 5, 6]; 

console.log(checkArrayOrder(array1 ,array2)); 

function checkArrayOrder(array1 ,array2) 
{ 
    for (var i = 0; i<array2.length; i++) { 
     if (array2[i] != array1[i]) { 
      return false; 
      break; 
     }//if close 
    }//for close 
    return true; 
} 

入住這FIDDLE

+0

好吧,我的錯誤,我會理解用兩個數組順序檢查。 – Sender