按 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浏览

开启你的职业生涯

通过完成课程获得认证

开始
广告