-1

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

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

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

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

4

2 回答 2

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');
于 2012-10-24T06:32:24.030 回答
0

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

下划线文档非常简单。你会发现如何轻松实现你想要的。

于 2012-10-24T06:49:18.023 回答