uni-app實現 通訊錄按照字母排序


import PY from '@/common/pinyin.js'

可以從下面鏈接獲取

https://www.cnblogs.com/supershare/p/14318957.html

//arr對應的名字數組
pySegSort(arr) {
  let letters = "*ABCDEFGHJKLMNOPQRSTWXYZ".split('');
  let segs = {};
  let indexedList = []
  // 創建一個以26個為key的對象
  letters.forEach(item => {
    segs[item] = [];
  })
  arr.forEach(item => {
    // 取姓氏並返回姓氏的拼音首字母
    let a = PY.ConvertPinyin(item.cusName).substr(0, 1)
    // 在A-z之中寫入對應字母的對象數組中,否則傳入*對象數組里
    let regComfirm = /[A-Za-z]/.test(a)
    regComfirm ? segs[a.toLocaleUpperCase()].push(item) : segs['*'].push(item)

  })
  // 循環segs對象,轉換為indexList組件需要的格式
  for (const [key, value] of Object.entries(segs)) {
    value.length && indexedList.push({
      letter: key,
      data: value
    })
  }
  indexedList.forEach(item => {
    if (item.data.length > 1) {
      // 這里是給相同拼音首字母進行排序
      item.data = item.data.sort((a, b) => {
        return a.localeCompare(b)
      })
    }
  })
  return indexedList;
},

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM