根据后端返回的数据进行中文排序操作

  最近遇到后端直接给我返回数据类似城市列表,然后需要根据返回的数据进行中文排序,并展示

  如图

   

const arr = [
      {brandimg: "http://dummyimage.com/500x500/f2799c/fff.jpg&text=jjokok ", brandname: "北京", brandid: 2124},
      {brandimg: "http://dummyimage.com/500x500/f2799c/fff.jpg&text=jjokok ", brandname: "上海", brandid: 2124},
      {brandimg: "http://dummyimage.com/500x500/f2799c/fff.jpg&text=jjokok ", brandname: "广州", brandid: 2124}
    ]

pySegSort=(arr) =>{
    if (!String.prototype.localeCompare) return null
    let letters = 'abcdefghjklmnopqrstwxyz'.split('')
    let zh = '阿八茶哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀'.split('')
    let segs = []
    letters.map((item, i) => {
      let cur = { letter: item, data: [] }
      arr.map((item) => {
        if(item.brandname.localeCompare(zh[i])>=0&&item.brandname.localeCompare(zh[i+1])<0){
          cur.data.push(item)
        }   
        return ''      
      })
      if (cur.data.length) {   
        cur.data.sort(function(a, b) {
          return a.brandname.localeCompare(b, 'zh')
        })
        segs.push(cur)
      }
      return ''
    })
    return segs
  }

  渲染结果就没写了直接上图   最终展示结果

原文地址:https://www.cnblogs.com/dcyd/p/12913467.html