2017-02-12 439 views
-1

什么是按特定顺序对数组进行排序的可重用和可扩展的方法?Angular2 - 将数组按特定顺序排序

从后台我得到一个随机排列的项目列表。该列表必须按特定顺序排序,供用户查看。排序必须在前端完成。我无法触摸后端。

例子:

项目3,项目1,项目2或项目1,项目3,项目2,...

- >排序

项目1, 项目2,项目3

任何想法的?

回答

0

你可以使用下面的代码:

function sortIt(arr){ 
 
    return arr.sort((a,b) => a.replace(/[a-z]+/gi, '') - b.replace(/[a-z]+/gi, '')); 
 
} 
 

 
console.log(sortIt(['Item3', 'Item1', 'Item2'])); 
 
console.log(sortIt(['Item12', 'Item3', 'Item1', 'Item2', 'Item4'])); 
 
console.log(sortIt(['Item1', 'Item1', 'Item2']));

+0

的项目纯粹是假设性的。我从后端获得各自具有特定密钥的环境。 – user2963570

+0

@ user2963570它将适用于以某个数字结尾的所有元素,因为排序功能依赖于它。 –

+0

是的,这是真的,但在我的情况下,我没有任何数字。我得到的环境返回了一个特定的关键字,例如:dev,acc,....基于该关键字,我需要在它应该是的索引上设置环境。 – user2963570

0

最近我贴出答案类似的问题,请参见gist,它可以像这样使用:

[{key: 'dev'},{key: 'acc'},{key: 'prd'}].sort(compare<{key:string}>({property: 'key'}));