当前位置:  开发笔记 > 编程语言 > 正文

如何按预定义的顺序按字符串属性对数组进行排序

如何解决《如何按预定义的顺序按字符串属性对数组进行排序》经验,为你挑选了2个好方法。

我有一系列的评论.每个评论都有一个正面,负面或中性的内涵(字符串)属性.

我正在尝试建立一种sort方法,将所有的负面因素放在一开始,然后是中立数,然后是正数.另外,另一种方法是反过来.

我尝试了以下方法:

res.sort! { |re1,re2|
  case
  when re1.connotation == re2.connotation
    0
  when re1.connotation == "positive"
    -1
  when re1.connotation == "negative"
    1
  else
    0
  end
}

对我做错了什么的想法?



1> Sergio Tulen..:

无需打扰那些太空船操作员值(-1,0,1)

order = ['negative', 'neutral', 'positive']

data.sort_by {|d| order.index(d.connotation)}



2> ndnenkov..:
connotations = {"positive" => 1, "negative" => -1, "neutral" => 0}
res.sort_by { |re| conotations[re.connotation] }

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有