最近遇到后端直接給我返回數據類似城市列表,然后需要根據返回的數據進行中文排序,並展示
如圖
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 }
渲染結果就沒寫了直接上圖 最終展示結果