lodash常用函数整理

cloneDeep

深拷贝

返回

一个新的数组

示例

import { cloneDeep } from 'lodash'

// 会开辟一个新的堆栈空间
let form = cloneDeep(this.editSignal)
var objects = [{ 'a': 1 }, { 'b': 2 }];
 
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false

clone

浅拷贝

返回

一个新的数组

示例

import { clone } from 'lodash'

let form = clone(this.editSignal)
var objects = [{ 'a': 1 }, { 'b': 2 }];
 
var shallow = _.clone(objects);
console.log(shallow[0] === objects[0]);
// => true

orderBy

排序

参数

  1. collection (Array|Object): 用来迭代的集合。
  2. [iteratees=[_.identity]] (Array[]|Function[]|Object[]|string[]): 排序的迭代函数。
  3. [orders] (string[])iteratees迭代函数的排序顺序,指定为"desc" 降序,或者指定为 “asc” 升序,默认升序

返回

返回一个新数组或者对象

示例

import lodash from 'lodash'
const sortArr = lodash.orderBy(newArr, ['value'], ['desc'])

newArr =
[
    {
        "name": "严重",
        "value": 85,
        "color": "#FF4C51"
    },
    {
        "name": "高",
        "value": 20,
        "color": "#fb8c00"
    },
    {
        "name": "中",
        "value": 30,
        "color": "#EEC900"
    },
    {
        "name": "低",
        "value": 50,
        "color": "#3caea3"
    },
    {
        "name": "信息",
        "value": 20,
        "color": "#7b809a"
    },
    {
        "name": "测试",
        "value": 5,
        "color": "#038CD6"
    }
]

sortArr = 
[
    {
        "name": "严重",
        "value": 85,
        "color": "#FF4C51"
    },
    {
        "name": "低",
        "value": 50,
        "color": "#3caea3"
    },
    {
        "name": "中",
        "value": 30,
        "color": "#EEC900"
    },
    {
        "name": "高",
        "value": 20,
        "color": "#fb8c00"
    },
    {
        "name": "信息",
        "value": 20,
        "color": "#7b809a"
    },
    {
        "name": "测试",
        "value": 5,
        "color": "#038CD6"
    }
]

filter

过滤

参数

  1. collection (Array|Object): 一个用来迭代的集合。
  2. [predicate=_.identity] (Array|Function|Object|string): 每次迭代调用的函数。

返回

(Array): 返回一个新的过滤后的数组。

使用

import { filter } from 'lodash'

const arr = filter(this.signalValueTypeList, v => this.query.signalValueTypes.includes(v.text))

示例

import _ from 'lodash'

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
 
// The `_.matches` iteratee shorthand.
_.filter(users, { 'age': 36, 'active': true });
// => objects for ['barney']
 
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
 
// The `_.property` iteratee shorthand.
_.filter(users, 'active');
// => objects for ['barney']

groupBy

分组

参数

  1. collection (Array|Object): 一个用来迭代的集合。
  2. [iteratee=_.identity] (Array|Function|Object|string): 这个迭代函数用来转换key。

返回

一个新的集合

示例

// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

sortBy

排序,感觉跟orderBy的作用差不多,所以我经常看心情选一个用哈哈哈哈

参数

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

返回

排序后的数组

示例

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]]

猜你喜欢

转载自blog.csdn.net/weixin_41886421/article/details/129758017