📌  相关文章
📜  loadash 按另一个数组的顺序排序 - Javascript (1)

📅  最后修改于: 2023-12-03 14:44:01.600000             🧑  作者: Mango

使用 loadash 按另一个数组的顺序排序 - Javascript

有时候我们需要对一个对象数组进行排序,但是排序的规则却是另一个数组的顺序。这时就可以使用 lodash 库提供的 orderBy 方法来实现。

安装 lodash

使用 npm 进行安装:

npm install lodash

或者通过 CDN 引入:

<script src="https://cdn.jsdelivr.net/npm/lodash@latest"></script>
使用 orderBy 方法进行排序

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 方法可以很方便地实现按照另一个数组的顺序进行排序的需求。同时也可以使用函数或属性名作为排序依据,非常适合复杂的排序需求。