Lodash.sortby

2,496 阅读1分钟

Lodash 通过降低 array、number、object、object、string 等等的使用难度从而让JavaScript变得更简单

Lodash的模块开发方法适用于:

  • 遍历 array、obejct 和 string
  • 对值进行操作和检测
  • 创建符合功能的函数

loadsh.sortby

安装

$npm install lodash.sortby

引用

import sortby from lodash.sortby

语法

sortby(collection, [iteratees=[_.identity]])

参数

  • 1.collection (Array|Object): 用来迭代的集合。
  • 2.[iteratees=[_.identity]] (...(Array|Array[]|Function|Function[]|Object|Object[]|string|string[])): 这个函数决定排序。

创建一个元素数组。以itetatee处理的结果升序排序。这个方法执行稳定排序,也就是说相同元素会保持原始排序。 参数一的排序是基于参数二

返回

返回排序后的数组

举例看看:

import sortby from "lodash.sortby";
var users = [
  { user: "fred", age: 43 },
  { user: "barney", age: 36 },
  { user: "faed", age: 47 },
  { user: "barney", age: 34 },
];

const a = sortby(users, function(o) {
  return o.user;
});
/**
a数组中基于user来排序,如果user相同,则返回原顺序
0: {user: "barney", age: 36}
1: {user: "barney", age: 34}
2: {user: "faed", age: 47}
3: {user: "fred", age: 43}
 */

const b = sortby(users, ["user", "age"]);
/**
b数组先按照user排序,user相同的情况下在按照age排序
0: {user: "barney", age: 34}
1: {user: "barney", age: 36}
2: {user: "faed", age: 47}
3: {user: "fred", age: 43}

 */
const c = sortby(users, "user", function(o) {
  return Math.floor(o.age / 10);
});

/**
c数组先按照user排序,然后按照Math.floor(o.age / 10)的结果排序
0: {user: "barney", age: 36}
1: {user: "barney", age: 34}
2: {user: "faed", age: 47}
3: {user: "fred", age: 43}

 */
console.log("a", a);
console.log("b", b);
console.log("c", c);
export default {
  name: "Form4",
  title: "测试",
};

参考来源

Lodash