2012-03-05 54 views
3

有一個表,我想要表列數據的唯一值,就像表格行可能有4,2,2,4,5,4那麼它應該返回數組這樣data = [ 2 , 4 , 5 ]從表格列和排序數組中檢索唯一數據

我能夠做到這一點使用jQuery如下鏈接

http://jsbin.com/ojeroc/5/edit#source

但數據應該來升序排列因此,我可以用這個陣列中的另一個功能。

$(document).ready(function(){ 
    console.log("document is ready");   
    var items=[], options=[]; 
    console.log(items); 
    console.log(options); 
    //Iterate all td's in second column 
    $('#dataTable tr td').each(function(){ 
    //console.log("Inside tr data");                           
     //add item to array 
     items.push($(this).text());  
     // console.log($(this).text()); 
    }); 
    //restrict array to unique items 
    var items = $.unique(items); 
    alert(items); 
}); 

回答

1

您可以使用Array.sort()法陣項目進行排序:

var sortedItems = $.unique(items).sort(function(a, b) { 
    return a - b; 
}); 

作爲參數傳遞的功能是用來比較數組中的兩個項目。它收到兩個元素。

排序是通過返回一個負值/正值/零值來完成的。爲了比較數字,您可以簡單地從a中減去b。

DEMO

+1

謝謝,我想檢索排序數組的最小值和最大值,可以做到這一點? – Wazdesign 2012-03-05 09:43:37

+0

@Wazdesign如果你想一下,你會發現它很容易。 – kapa 2012-03-05 09:45:16

+2

排序後,'sortedItems [0]'將得到min和'sortedItems [sortedItems.length-1]'最大值。 – 2012-03-05 09:46:01

2
function sortNumber(a,b) 
{ 
     return a - b; 
} 

var n = ["10", "5", "40", "25", "100", "1"]; 
document.write(n.sort(sortNumber)); 

會造成這樣的輸出:

1,5,10,25,40,100

你也可以將它包裝在一個匿名函數

n.sort(function(a,b){return a-b;}) 

哪個會更快,但如果您需要一遍又一遍地使用它,我會堅持使用該功能。

+1

那是快。 :) – Wazdesign 2012-03-05 09:38:10

+1

希望它對你有幫助;-) – 2012-03-05 09:39:02