-1
我有对象的JSON数组,看起来是这样的:的JavaScript数组排序2个性能
var garments [{
name: 'Garment 1',
isDesignable: false,
priority: 3
},{
name: 'Garment 2',
isDesignable: false,
priority: 1
},{
name: 'Garment 3',
isDesignable: true,
priority: 3
},{
name: 'Garment 4',
isDesignable: true,
priority: 2
},{
name: 'Garment 5',
isDesignable: true,
priority: 4
}];
起初,我需要通过优先,所以我这样做是为了对数组进行排序:
garments.sort(function (a, b) {
// By priority
return a.priority - b.priority;
});
这很好。但现在,我意识到如果服装不是可设计的,那么它应该位于阵列的底部,而不管它是否优先。任何人都可以帮助我使用排序功能,因此所有非设计的服装都处于最底层吗?
我能问回报1位是什么? – r3plica
这就是比较函数应该做的事情:返回值<0, 0 or > 0表示第一个元素低于,等于或高于第二个元素。 'a'不是可设计的,而是'b'时,'return 1'就是这种情况。 – deceze
我不知道为什么,但是这个函数返回数组前面的非可设计对象,然后优先级从高到低排列。我需要它相反的方式 – r3plica