Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按枚举顺序而不是值对数组排序_Javascript_Arrays_Angular_Typescript - Fatal编程技术网

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;
}
问题是我按枚举名称获取数组顺序:

  • 1W
  • 1米
  • 1Y
  • 而不是:

  • 1W
  • 2W
  • 1米
  • 如何按枚举的“顺序”对数组排序?不是按字母顺序吗

        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中的顺序对数组进行排序