芭蕾舞女演员是否支持排序?

时间:2018-06-12 09:19:24

标签: ballerina

需要根据私有变量值对一些芭蕾舞女演员对象进行排序。我们可以分类芭蕾舞女演员对象或原始类型数组吗?有什么功能吗?

2 个答案:

答案 0 :(得分:2)

目前没有内置的方法可以对数组进行排序。您可以根据需要实现排序功能。

在github中找到一个可以重用的实现 - https://github.com/chamil321/ballerinaCentralWorkSpace/blob/master/sort/impl.bal。但它的整数。我认为它涉及https://central.ballerina.io/chamil/sort包。您可以拉包并尝试一下。

答案 1 :(得分:0)

看起来芭蕾舞女演员现在支持排序,但是您必须完成所有繁重的工作。即使对于简单的值类型。 las。

无论如何,这是一个按字母顺序排列的刺刺,该阵列具有每个json元素和一个name元素-obvs也可以通过一些调整用于简单的int或字符串或worreva:

json items = [{ name: "aaa" }, { name: "aab" }];
items.sort(sortItems)

function sortItems(json a, json b) returns int {
    // extract character by character numeric representation of string
    int[] aname = a.name.toString().toCodePointInts();
    int[] bname = b.name.toString().toCodePointInts();

    // do character by character comparison
    int i = 0;
    while (i < aname.length() && i < bname.length()) {
        if (aname[i] < bname[i]) { return -1; }
        else if (aname[i] > bname[i]) { return 1; }
        i += 1;
    }
    // if all the characters in the shared length is the same
    // assume the shorter string should come first
    if (aname.length() < bname.length()) { return -1; }
    if (aname.length() > bname.length()) { return 1; }

    return 0;
}

很高兴得到纠正,并且有一种更简单的本地方法可以做到这一点。 (数组初始化可能是错误的,未对此进行测试,因此)。