返回 导航

其他

hangge.com

JS - Lodash工具库的使用详解7(Array数组函数4:数组排序、打乱)

作者:hangge | 2019-10-03 08:10

七、Array 数组操作函数4:数组排序

1,基本排序

(1)sortBy 方法创建一个元素数组。 以 iteratee 处理的结果升序排序。 这个方法执行稳定排序,也就是说相同元素会保持原始排序。
var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred',   'age': 40 },
  { 'user': 'barney', 'age': 34 }
];
 
_.sortBy(users, function(o) { return o.user; });
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
 
_.sortBy(users, ['user', 'age']);
// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
 
_.sortBy(users, 'user', function(o) {
  return Math.floor(o.age / 10);
});
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

(2)orderBy 方法类似于 sortBy,除了它允许指定 iteratee(迭代函数)结果如何排序。 指定为"desc" 降序,或者指定为 "asc" 升序,如果没指定 orders(排序),所有值以升序排序。
var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 34 },
  { 'user': 'fred',   'age': 40 },
  { 'user': 'barney', 'age': 36 }
];
  
// 以 `user` 升序排序 再  `age` 以降序排序。
var result = _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
console.log(result);

2,去重排序

(1)sortedUniq 类似与去重方法 uniq,返回一个新的不重复的数组,并且它会优化排序数组。
_.sortedUniq([1, 1, 2]);   // => [1, 2]

(2)sortedUniqBy 方法类似于 sortedUniq,不过它接受一个 iteratee (迭代函数),调用每一个数组(array)的每个元素以产生唯一性计算的标准。它同样会优化排序数组。
_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);   // => [1.1, 2.3]

3,打乱数组

shuffle 方法可以创建一个被打乱值的数组。
_.shuffle([1, 2, 3, 4]);   // => [4, 1, 3, 2]
评论

全部评论(0)

回到顶部