• js中按照中文首字母排序


    按照中文首字母排序

    在项目中的表格中要对国家排序,使用的是element中的表格

    <el-table-column label="Country" width="100" show-overflow-tooltip sortable :sort-method="sortChange1">
      <template slot-scope="scope">
          {{ scope.row .company_country_name_en?scope.row.company_country_name_en:scope.row.company_country_name_cn | textFormat }}
      </template>
    </el-table-column>
    
    • show-overflow-tooltip:当内容过长被隐藏时显示 tooltip
    • sortable:对应列是否可以排序
    • sort-method:对数据进行排序的时候使用的方法
    //国家首字母排序
    sortChange1(a,b){
      return a.company_country_name_en.localeCompare(b.company_country_name_en);
    },
    

    使用sort()的话无法直接的比较中文,并且在对字符串的比较中 比较的是首位来比较的 例如:

    let arr=['10000','1','23','8','25','36']
    arr.sort()
    console.log(arr)//(6) ["1", "10000", "23", "25", "36", "8"]
    

    所以使用sort就不行了
    sort()有一个参数是可设置的排列顺序sort会按照顺序把arr[i] arr[i+1]传入方法的sort((a,b)=>...)a和b 比较的规则:

    • a小于b,返回小于0的值,sort排序会将a放在b之前
    • a等于b,返回0
    • a大于b,返回大于0的值,sort排序会将b放在a之前

    localeCompare()方法,比较两个字符串的先后顺序,可用于判断中文 例如:a.localeCompare(b)

    • 当前字符串对象排在b之前,则localeCompare()返回 -1
    • 当前字符串排在b之后,则返回 1
    • 两个字符串相等,则返回 0
    //可使用的方法为:  
    arr.sort((a,b)=>{
      return a.localeCompare(b)
    })
    
  • 相关阅读:
    网络流之转换为对偶图
    BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)
    BZOJ[HNOI2005]狡猾的商人(差分约束)
    BZOJ [ZJOI2007]矩阵游戏(二分图匹配)
    BZOJ 1191: [HNOI2006]超级英雄Hero(二分图匹配)
    BZOJ 1270: [BeijingWc2008]雷涛的小猫(DP)
    BZOJ 1303: [CQOI2009]中位数图
    BZOJ [HNOI2006]鬼谷子的钱袋
    BZOJ1002 [FJOI2007]轮状病毒(最小生成树计数)
    A* 算法讲解
  • 原文地址:https://www.cnblogs.com/my466879168/p/12431230.html
Copyright © 2020-2023  润新知