基于不同数据集对数组进行排序的最佳方法?

Best way to sort array based of different sets of data?

var array = [{value:"13",type:"Fruit"},{value:"61",type:"Animal"},
             {value:"19",type:"Fruit"},{value:"71",type:"Animal"},
             {value:"12",type:"Fruit"},{value:"15",type:"Fruit"}, 
             {value:"11",type:"Plant"},{value:"10",type:"Fruit"}, 
             {value:"16",type:"Plant"}] 

什么是 best/optimized 排序这个数组的方法,这样我首先得到 Fruit 类型的所有元素,然后是 Animal 类型的元素(通过从数组末尾选取元素)。

expectedOutput = [{value:"10",type:"Fruit"}, 
             {value:"15",type:"Fruit"},{value:"12",type:"Fruits"},
             {value:"19",type:"Fruit"},{value:"13",type:"Fruit"},
             {value:"71",type:"Animal"},{value:"61",type:"Animal"}, 
             {value:"16",type:"Plant"},{value:"11",type:"Plant"}]

注意:- 我不需要按字母顺序对其进行排序。一定要根据具体类型排序。

可以将type属性的顺序存储在一个数组中,然后在排序时减去type属性的索引来确定优先级:

const order = ["Fruits", "Animal"]

var array = [{value:"13",type:"Fruit"},{value:"61",type:"Animal"},
             {value:"19",type:"Fruit"},{value:"71",type:"Animal"},
             {value:"12",type:"Fruit"},{value:"15",type:"Fruit"}] 

const sorted = array.sort((a,b) => order.indexOf(a.type) - order.indexOf(b.type))

console.log(sorted)