我能够找到使用$.each
的人的唯一示例是html示例,但这不是我想要的。我有以下对象:
var obj = {
obj1: 39,
obj2: 6,
obj3: 'text'
obj4: 'text'
obj5: 0
};
我像这样遍历对象:
$(array).each(function(index, value) {
// ...
});
我想按
obj3
和obj4
排序。最好不要使用异步方法,如何在输出之前(或期间)对结果排序? (我也不想循环两次,因为在任何给定时间可能有数百个循环。 最佳答案
var array = {
obj1: 39,
obj2: 6,
obj3: 'text'
obj4: 'text'
obj5: 0
};
不是数组(尽管有其名称)。它是一个对象。按
obj3
和obj4
排序的想法实际上没有任何意义。现在,如果要将此对象转换为对象数组,则可以使用
array.sort
方法对该数组进行排序。var array = [
{ obj1: 39,
obj2: 6,
obj3: 'text'
obj4: 'text'
obj5: 0
},{ obj1: 40,
obj2: 7,
obj3: 'text2'
obj4: 'text3'
obj5: 0
}
];
array.sort(function(a, b) {
var textA = a.obj3.toLowerCase();
var textB = b.obj3.toLowerCase();
if (textA < textB)
return -1;
if (textA > textB)
return 1;
return 0;
});
并且当然要按数字属性排序,它就是:
array.sort(function(a, b) {
return a.obj1 - b.obj1;
});