-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