📅  最后修改于: 2023-12-03 14:44:01.600000             🧑  作者: Mango
有时候我们需要对一个对象数组进行排序,但是排序的规则却是另一个数组的顺序。这时就可以使用 lodash 库提供的 orderBy
方法来实现。
使用 npm
进行安装:
npm install lodash
或者通过 CDN 引入:
<script src="https://cdn.jsdelivr.net/npm/lodash@latest"></script>
orderBy
方法的使用非常简单,只需要传入两个参数:待排序的数组和排序规则数组。排序规则数组每个元素都是代表排序的字段,可以是对象的某个属性名,也可以是函数返回值。
以下是一个例子:
const users = [
{ name: 'John', age: 28 },
{ name: 'Mary', age: 18 },
{ name: 'Tom', age: 24 },
{ name: 'Bob', age: 30 },
{ name: 'Alice', age: 22 }
];
const order = ['Mary', 'Alice', 'John', 'Tom', 'Bob'];
const result = _.orderBy(users, user => order.indexOf(user.name));
console.log(result);
运行结果如下:
[
{ name: 'Mary', age: 18 },
{ name: 'Alice', age: 22 },
{ name: 'John', age: 28 },
{ name: 'Tom', age: 24 },
{ name: 'Bob', age: 30 }
]
可以看到,按照 order
数组的顺序进行了排序。
使用 lodash
库提供的 orderBy
方法可以很方便地实现按照另一个数组的顺序进行排序的需求。同时也可以使用函数或属性名作为排序依据,非常适合复杂的排序需求。