有没有更简单的方法来在JavaScript中对响应对象进行排序?

时间:2014-05-08 01:04:20

标签: javascript arrays sorting

目前,我正在使用以下内容对响应对象中的TypeCode(字符串)进行排序。

这似乎有点过分了。是否有更容易的方法来实现这一点,每个循环一个?

if (response && response.length > 0) {
    var sortedArray = [];
    $.each(response, function (i, dict) {
        sortedArray.push(dict.TypeCode);
    });
    sortedArray.sort();
    $.each(sortedArray, function (i, dict) {
        console.log(dict);
    });
}

2 个答案:

答案 0 :(得分:1)

通过提供比较每个元素的response属性的比较函数,对原始TypeCode数组进行排序。

response.sort(function(a, b) {
    return a.TypeCode - b.TypeCode
});
$.each(response, function(i, dict) {
    console.log(dict.TypeCode);
});

答案 1 :(得分:1)

我认为TypeCode是一个数字。您可以将compareFunction传递给sort

var sortedResponse = response.sort(function (d1, d2) {
    return d1.TypeCode - d2.TypeCode;
});

如果TypeCode是一个字符串,那么:

var sortedResponse = response.sort(function (d1, d2) {
    var type1 = d1.TypeCode, type2 = d2.TypeCode;

    return type1 < type2? -1 : +(type1 > type2);
});