有没有更简单的方法在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);
});