Groovy:如何按中间的数字对文本和数字数组进行排序

时间:2018-09-22 17:57:02

标签: groovy

我有一个像这样的数组:

def array = [ 
  "release-3.0.0-23-9sz6gd",
  "release-3.0.0-12-7hbs6",
  "release-3.0.0-10-h7bdbc",
  "release-3.0.0-3-g6h8xd",
  "release-3.0.0-1-a6gbd6",
]

我需要它能够按相反的顺序按中间的数字(例如3.0.0-1)排序,如下所示:

if(this.state.cat){ 
   return _.map(this.state.cat, categoria => {

        if(this.state.search_receive){
          somecode...

        }else {
          this.retornaItens(categoria);
          //if I put the <p>code here</p> it works
        }

    });


    retornaItens = (categoria) =>{
     return (  <p>code..</p> ); }

如何用Groovy做到这一点?

我尝试关注Groovy: How to sort String array of text+numbers by last digit,但没有任何运气

1 个答案:

答案 0 :(得分:1)

这似乎有效

def newArray = array.sort(false){[it.tokenize('-')[-3], it.tokenize('-')[-2] as Integer]}

在这里,我们对第一个破折号之后的字符串进行排序,然后对第二个破折号之后的整数进行排序