在做城市,或联系人右侧快速查找时,我们可以根据返回的数据,把相对应的城市名字,或人员名字传入到下面的函数中,来组装成自己需要的数据类型。
function pySegSort (arr){
if (!String.prototype.localeCompare) return null
let letters = 'abcdefghjklmnopqrstwxyz'.split('')
let zh = '阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀'.split('')
let segs = []
letters.forEach((item, i) => {
let cur = { letter: item, data: [] }
arr.forEach((item) => {
if(item.localeCompare(zh[i])>=0&&item.localeCompare(zh[i+1])<0){
cur.data.push(item)
}
})
if (cur.data.length) {
cur.data.sort(function(a, b) {
return a.localeCompare(b, 'zh')
})
segs.push(cur)
}
})
segs.forEach((item)=>{
item.letter = item.letter.toLocaleUpperCase();
})
return segs
}
形参arr是名称数组例;[‘朝阳区’,‘海淀区’,‘昌平区’…],调用后结果如下
其中letter是首字母,data里的值是当前首字母的城市名或人名
dataList是我自己组装成的数据,当前区下面的小区