arrays - 自定义排序 Groovy JSONArray - 首先自定义值,然后按字母顺序

标签 arrays json sorting grails groovy

我有一个 JSONArray 中的静态值列表。这是我的示例数组:

JSONArray json = new JSONArray()

json = ["B", "E", "C", "Z", "A", "X", "F", "H"]

我需要以自定义方式对这个 json 数组进行排序。我需要先放“E”,然后放“F”,然后按字母顺序对其余部分进行排序。

我希望我的最终结果是这样的:
json = ["E", "F", "A", "B", "C", "H", X", "Z"]

Groovy 具有基本的排序功能,我可以使用以下方法按字母顺序或反向排序:
json.sort()

或者
json.reverse()

我正在寻找一种简单的方法来进行自定义排序。

最佳答案

在我的 5 分钟实验中,我使用了权重:

def json = ["B", "E", "C", "Z", "A", "X", "F", "H"]
def weights = [ E:10, F:9 ]

json.sort{
  it.charAt( 0 ) - ( weights[ it ] ?: 0 )
}

assert '[E, F, A, B, C, H, X, Z]' == json.toString()

你可能想要包括一些错误检查

关于arrays - 自定义排序 Groovy JSONArray - 首先自定义值,然后按字母顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788857/

相关文章:

javascript - 如何使用 jQuery n json 动态编写 HTML 标签?

java - 将数组从最高到最低排序

python - 对提供订单的字典列表进行排序

python - 从 JSON 文件中删除子元素

javascript - 根据字符串数组重新排序对象数组?

php根据字符串对数组进行排序

python - 类型错误 : an integer is required in pd. 合并 python

javascript - 通过变量访问嵌套的 Javascript JSON 属性

ruby - 获取 Ruby 中数组排序排列的索引?

javascript - 在循环中替换数组的变量