数组对象根据自定义文字排序

比如有一个数组对象

let arr = [

  {name:'猴'},{name:'狗'},{name:'马'},{name:'羊'},{name:'兔'},{name:'龙'}

]

我想这个数组排序顺序为    鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪

直接用sort() 排序是排不出来的

可以如下

arr.sort((a,b)=>{
  //  鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪
  let order = ['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪']
  return order.indexOf(a.name) - order.indexOf(b.name)
});

 

即可得到想要的数组,其实这个就是变相吧name 的值变成了可排序的  number值   

 

posted @ 2021-12-02 17:08  shez  阅读(174)  评论(0编辑  收藏  举报