Javascript 按枚举顺序而不是值对数组排序
我想订购对象的Javascript 按枚举顺序而不是值对数组排序,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,我想订购对象的数组,其中对象包含枚举属性 export enum MyEnum { FIXTERM1W = 'FIXTERM_1W', FIXTERM2W = 'FIXTERM_2W', FIXTERM1M = 'FIXTERM_1M', FIXTERM2M = 'FIXTERM_2M', FIXTERM3M = 'FIXTERM_3M', FIXTERM6M = 'FIXTERM_6M', FIXTERM1Y = 'FIXTERM_1Y', FIXTERMDEF
数组
,其中对象包含枚举属性
export enum MyEnum {
FIXTERM1W = 'FIXTERM_1W',
FIXTERM2W = 'FIXTERM_2W',
FIXTERM1M = 'FIXTERM_1M',
FIXTERM2M = 'FIXTERM_2M',
FIXTERM3M = 'FIXTERM_3M',
FIXTERM6M = 'FIXTERM_6M',
FIXTERM1Y = 'FIXTERM_1Y',
FIXTERMDEFAULT = 'FIXTERM_DEFAULT',
FIXTERMWA = 'FIXTERM_WA',
ONCALL24H = 'ONCALL_24H',
ONCALL48H = 'ONCALL_48H',
ONCALLWA = 'ONCALL_WA'
};
在我的数组\u myvalue
中,我有一个myobject
列表,每个myobject
都包含一个类型为MyEnum
的属性代码:
get xxx(): (Yyyy) {
if (this._myvalue && this._myvalue.myobject && this._myvalue.myobject.length > 0) {
this._myvalue.myobject = sortBy(this._myvalue.myobject,
[function (o: any): any {
return o.code;
}]);
}
return this._myvalue;
}
问题是我按枚举名称获取数组顺序:
const order = [];
for (let key in MyEnum) {
order.push(key);
}
const newArray = myArray.sort((a, b) => {
const index1 = order.findIndex(key => MyEnum[key] === a.code);
const index2 = order.findIndex(key => MyEnum[key] === b.code);
return index1 - index2;
});
这将按照键存储在MyEnum中的顺序对数组进行排序