如何通过忽略大小写(大写字母和小写字母)按字母顺序排序JStree(Jquery PlugIn)节点

时间:2018-03-26 18:50:53

标签: jquery

我使用JsTree插件绘制文件夹和文件树,在这里你可以看到我的排序数学代码。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#232222">

    <Button
        android:id="@+id/startServiceBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/killServiceBtn"
        android:layout_alignParentStart="true"
        android:layout_gravity="top"
        android:layout_marginBottom="17dp"
        android:background="@layout/service_action_btns_layout"
        android:padding="15dp"
        android:text="@string/startBgServiceBtn" />

    <Button
        android:id="@+id/killServiceBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignStart="@+id/startServiceBtn"
        android:layout_gravity="top"
        android:layout_marginBottom="18dp"
        android:background="@layout/service_action_btns_layout"
        android:padding="15dp"
        android:text="@string/killBgServiceBtn" />

    <Button
        android:id="@+id/simulateGeofeneEntryBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"
        android:background="@layout/simulate_geofence_btn_layout"
        android:padding="15dp"
        android:text="@string/simulateGeofeneEntryBtn" />

</RelativeLayout>

这段代码给我的结果如

  1. AA
  2. BB
  3. AA
  4. 其名称以小写字母开头的平均文件夹,总是在大写字母文件夹名称后显示。根据ASCII大写字母始终排序第一个和小写字母排序大写字母。 但我想对文件夹名称进行排序,例如

    1. AA

    2. AA

    3. BB
    4. 我的意思是文件夹必须按字母顺序排序,忽略大小写字母。谢谢提前

1 个答案:

答案 0 :(得分:3)

另一种选择是toUpperCase或toLowerCase字符串:

建议:使用函数localeCompare进行两个字符串之间的比较。

  

localeCompare() 方法返回一个数字,指示引用字符串是在排序顺序之前还是之后或与给定字符串相同。

if (a1.icon == b1.icon){
    return a1.text.toLowerCase().localeCompare(b1.text.toLowerCase());
} else {
    return a1.icon.toLowerCase().localeCompare(b1.icon.toLowerCase());
}