如何通过.sort()

时间:2018-03-29 06:42:02

标签: angular sorting typescript ecmascript-6

我有这段代码:

export interface Model{
  fields: FieldMap;
}
export interface FieldMap {  [key: string]: Field;}
export interface Field { name: string; value?: string;   }

如何在字段模型中按键排序?

我告诉了这件事,但有错误TS2349:

  

无法调用类型缺少调用签名的表达式。

.fields.sort((a: any, b: any) => { if (a.key < b.key ){ return -1; }else if(a.key > b.key){ return 1; }else{ return 0; } });

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试根据键值对FieldMap对象进行排序 这是link

你可以这样试试:

var data = {
    fields: {
        "4": { name: 'name4', value: '4' },
        "1": { name: 'name1', value: '1' },
        "3": { name: 'name3', value: '3' },
        "2" : { name: 'name2', value: '2' }
    },
};

Object.keys(data.fields).sort((a: any, b: any) =>
{ if (a.key < b.key) { return -1; } else if (a.key > b.key) { return 1; } else { return 0; } });

alert(JSON.stringify(data.fields));