集合(数组或可枚举的对象),lodash

参考:https://www.lodashjs.com/docs/lodash.countBy

集合的概念有 array,map,set;lodash好像专指数组,或者可枚举的对象

 

countBy 返回一个组成集合对象,根据给出方法统计符合的个数,好像只对数组有用

console.log(countBy([6.1, 4.2, 6.3], Math.floor));
// {4: 1, 6: 2} 
console.log(countBy(['one', 'two', 'three'], 'length'));
// {3: 2, 5: 1}

forEachRight() // 反方向遍历数组
findLast() // 反方向查找元素
groupBy() // 和countBy类似,返回一个组成聚合的对象。但是返回了合并项

console.log(groupBy([6.1, 4.2, 6.3], Math.floor));
// { '4': [4.2], '6': [6.1, 6.3] }

invokeMap(collection, path, [args]) // 和 arr.map()类似,返回处理后的数组

console.log(invokeMap([123, 456], String.prototype.split, ''));
// [['1', '2', '3'], ['4', '5', '6']]

keyBy() 根据二维数组中元素对象中的值作为键值,生成一个新数组

var array = [
  { 'dir': 'left', 'code': 97 },
  { 'dir': 'right', 'code': 100 }
];
let ret = keyBy(array, function(o) {
  return String.fromCharCode(o.code);
});
console.log(ret)
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
ret = keyBy(array, 'dir');
console.log(ret)
// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }

orderBy() 根据二维数组元素对象中的值排序,生成一个新数组

var users = [
  { user: "fred", age: 48 },
  { user: "barney", age: 34 },
  { user: "fred", age: 40 },
  { user: "barney", age: 36 },
];
// 以 `user` 升序排序 再  `age` 以降序排序。
let res = orderBy(users, ["user", "age"], ["asc", "desc"]);
console.log(res);
// objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

partition() 根据给定的条件将一个数组拆分成两个数组

var users = [
  { user: "barney", age: 36, active: false },
  { user: "fred", age: 40, active: true },
  { user: "pebbles", age: 1, active: false },
];
let res = partition(users, function (o) {
  return o.active;
});
console.log(res);
// [[{ user: "fred", age: 40, active: true }], [{ user: "fred", age: 40, active: true },{ user: "pebbles", age: 1, active: false }]]

sample(arr) 获取数组中的随机元素

let random = sample([1, 2, 3, 4]);
console.log(random)

sampleSize(arr,num) 获取多个随机元素

let res = sampleSize([1, 2, 3], 2);
console.log(res)
// => [3, 1]

shuffle(arr) 获取被打乱的数组(集合)== smpleSize(arr,arr.length)

 

posted @ 2022-09-03 11:56  jqynr  阅读(93)  评论(0)    收藏  举报