按给定的属性顺序对对象数组进行排序

时间:2018-05-01 11:23:39

标签: javascript arrays angular typescript sorting

我有这个数组:

displayedColumns = ['CompanyName','Ticker', 'Id', 'Name', 'ActualTradeDate', 
  'Spot', 'PreviousTradeDate', 'PreviousSpot', 'FPrice', 'Status']

以及具有上述值作为属性的对象数组:

data : [{Ticker : ".. " ......... Status : "... " } , .... {...} ] 

但数据数组中的属性未在< displaybolums'中排序。订单(如所需)

最终想要的结果是:

data = [{  CompanyName : ".. " Ticker : ".."......Status : ".." },
{  CompanyName : ".. " Ticker : ".."......Status : ".." },....
{  CompanyName : ".. " Ticker : ".."......Status : ".." }]

**只是为了清楚,我不打算按某个属性的asc / desc值对数组进行排序。我想将数组中属性的顺序更改为< displayColumn'为了

我不确定如何按属性顺序对数组进行排序。 非常感谢

1 个答案:

答案 0 :(得分:1)

对象永远不会排序,但数组是。因此,您可以将对象数组转换为数组数组,其中包含displayedColumns顺序中的对象值:

 const result = data.map(obj => displayedColumns.map(key => obj[key]));