从表列和排序数组中检索唯一数据

时间:2012-03-05 09:30:53

标签: javascript jquery html

有一个表,我想要表列数据的唯一值,就像表行可能有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);
});

2 个答案:

答案 0 :(得分: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 :(得分:1)

您可以使用Array.sort()方法对数组项进行排序:

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

作为参数传递的函数用于比较数组中的两个项目。它收到两个元素。

通过返回负数/正数/零数来完成排序。要比较数字,您可以简单地从a。

中减去b

<强> DEMO