简体   繁体   English

如何通过.sort()对打字稿模型进行排序

[英]How to sort typescript model by .sort()

I have this code: 我有以下代码:

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

How can I sort by key in field model? 如何按字段模型中的键排序?

I tring something this, but have error TS2349: 我正在尝试此操作,但出现错误TS2349:

Cannot invoke an expression whose type lacks a call signature. 无法调用类型缺少调用签名的表达式。

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

I think you are trying to sort the FieldMap object based on key values. 我认为您正在尝试根据键值对FieldMap对象进行排序。
Here is the link 这是链接

You can try it like this: 您可以这样尝试:

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));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM