数组对象按照名字首字母进行排序

须要使用pinyin.js获得每一个名字的首字母this

var needData=[]
this.gradeTableData.forEach((item,index)=>{
if (this.classValue===item.class||item.class===''){
needData.push(
Object.assign({},item, {'py':pinyin(item.name,{style:pinyin.STYLE_NORMAL})[0][0][0].toUpperCase()})
)
}
})
//给集合排序
needData.sort((a,b)=>{
return a.py.charCodeAt(0) - b.py.charCodeAt(0);
})
//给首字母弄一个集合先
var myLetters =[]
needData.forEach((item,index)=>{
myLetters[item.py]=[]
})
// 给首字母集合添加元素
needData.forEach((item,index)=>{
myLetters[item.py].push(item)
})
console.log('myLetters`````````````');
console.log(myLetters);
// 这里为最终须要数据
// 将myLetters的数据整成本身所需对象
var endData=[]
for(var key in myLetters){
endData.push({
index:key,
users:myLetters[key]
})
}
console.log('endData````````````````');