按 JavaScript 陣列對一組物件進行排序


假設我們有一個包含一系列物件的陣列和一個包含一系列字串的陣列,如下所示 −

舉例說明

const orders = [
   { status: "pending"},
   { status: "received" },
   { status: "sent" },
   { status: "pending" }
];
const statuses = ["pending", "sent", "received"];

我們要求編寫一個 JavaScript 函式,它採用兩個這樣的陣列。此函式的目的是根據 statuses 陣列中元素對 orders 陣列進行排序。

因此,第一個陣列中的物件應根據第二個陣列中的字串來進行排序。

舉例說明

const orders = [
   { status: "pending" },
   { status: "received" },
   { status: "sent" },
   { status: "pending" }
];
const statuses = ["pending", "sent", "received"];
const sortByRef = (orders, statuses) => {
   const sorter = (a, b) => {
      return statuses.indexOf(a.status) - statuses.indexOf(b.status);
   };
   orders.sort(sorter);
};
sortByRef(orders, statuses); console.log(orders);

輸出

然後,控制檯中的輸出將會是 −

[
   { status: 'pending' },
   { status: 'pending' },
   { status: 'sent' },
   { status: 'received' }
]

更新日期: 23-11-2020

545瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.