最近做了大量的 ECharts 图表,眼睛已经开始冒星星了......其中,好几处碰到一个这样的问题:x 轴的 data 要按需求的顺序依次呈现,但后台返回的数据顺序总是不断地变化。没碰过,一下子懵了,还好有一个“灰常”靠谱的导师,纵使被吊了一句,“数组排序有这么难吗?”。不管了,学到了,就是我的,多谢老大,嘿嘿!
// 1.模拟后台返回的数据
let allScore = [
{
project:'数学',
score:134
},
{
project:'生物',
score:60
},
{
project:'英语',
score:108
},
{
project:'化学',
score:75
},
{
project:'物理',
score:70
},
{
project:'语文',
score:120
},
]
// 2.给出数组按 project 排序
let projectArr = ['语文','数学','英语','物理','化学','生物']
// 3.使用 map 给数组对象新增 index 属性
allScore.map(item =>{
item.index = projectArr.indexOf(item.project)
return item
})
console.log(allScore,'1');
// 4.按照 index 从小到大进行排序
allScore.sort((a, b)=>{
return a.index-b.index
})
console.log(allScore,'2');
查看打印结果