這個問題在這里已經有了答案: Javascript使用優先級陣列對物件陣列進行排序 (2個答案) 2 小時前關閉。
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"}]
對這個陣列進行排序的最佳/優化方法是什么,以便我首先獲取 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"}]
注意:- 我不需要按字母順序排序。它必須根據特定型別進行排序。
uj5u.com熱心網友回復:
您可以將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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354515.html
標籤:javascript 数组 数据结构
