Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有更简单的方法在JavaScript中对响应对象进行排序?_Javascript_Arrays_Sorting - Fatal编程技术网

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

有没有更简单的方法在JavaScript中对响应对象进行排序?,javascript,arrays,sorting,Javascript,Arrays,Sorting,目前,我正在使用以下命令对响应对象中的TypeCode(字符串)进行排序 这似乎有点过分了。是否有一种更简单的方法来实现这一点,即每个循环一个循环 if (response && response.length > 0) { var sortedArray = []; $.each(response, function (i, dict) { sortedArray.push(dict.TypeCode); }); sorte

目前,我正在使用以下命令对响应对象中的
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);
    });
}

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

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

我假设
TypeCode
是一个数字。您可以将
比较功能
复制到

如果
TypeCode
是字符串,则:

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

    return type1 < type2? -1 : +(type1 > type2);
});
var sortedResponse=response.sort(函数(d1、d2){
变量type1=d1.TypeCode,type2=d2.TypeCode;
返回类型1<类型2?-1:+(类型1>类型2);
});

抱歉,
TypeCode
是一个字符串。如果我想按
TypeCode
desc或asc订购,该怎么办?@gotnull好吧,你可以颠倒条件。基本上,如果
type1
小于
type2
,我们返回
-1
,如果相反,我们返回
1
,如果两者相等,我们返回
0
var sortedResponse = response.sort(function (d1, d2) {
    var type1 = d1.TypeCode, type2 = d2.TypeCode;

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