如何使用jQuery对对象的数据集合进行排序

时间:2012-10-23 14:35:02

标签: c# javascript jquery client-side jquery-templates

我有一个动态的对象集合,我在页面上绑定到jQuery Template。我在客户端的这个对象集合是从我的服务器返回的List<T>,其中T可以是任何类的任何对象。例如:

Class Employee
{
 string Name;
 int Id;
 int age;
}

Class Companies
{
  int CompId;
  string CompanyName;
  string CompanyLocation;
}

现在根据用户请求,我会向客户端发送List<Employee>List<Companies>。现在我只是想知道我们是否可以使用jquery在客户端对此列表进行排序。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

这可能不是你想要的,但它应该给你一个足够好的想法继续:

var list = [{
    prop1: 'a',
    prop2: 5
}, {
    prop1: 'b',
    prop2: 4
}, {
    prop1: 'c',
    prop2: 3
}, {
    prop1: 'd',
    prop2: 2
}, {
    prop1: 'e',
    prop2: 1
}];

function sort(propName, direction) {
    var dirOffset = direction === 'desc' ? -1 : 1;

    list.sort(function(a, b){
        a = a[propName];
        b = b[propName];

        if (a === b) {
            return 0;
        }

        var out = a < b ? -1 : 1;
        return out * dirOffset;
    });
}

function log(propName) {
    list.forEach(function(item){
        console.log(item[propName]);
    });
}

function sortAndLog(propName, direction) {
    console.log('Sorted by', propName, direction);
    sort(propName, direction);
    log(propName);
    console.log('------------------------------------');
}

sortAndLog('prop1', 'desc');
sortAndLog('prop1', 'asc');
sortAndLog('prop2', 'asc');
sortAndLog('prop2', 'desc');

答案 1 :(得分:0)

jQuery 是一个操纵DOM的库,在字符串方面不是最好的。我会说你检查underscore.js

下划线文件非常简单。您将找到如何轻松实现您想要的目标。