loadshJS

472 阅读1分钟

lodashjs官网

引用

npm i -g npm

npm i --save lodash

import { pick, get, find } from 'lodash'

import _ from 'lodash'

一般按需引入

常用例举:

_.pick()

根据第二个参数的key的数组,筛选第一个参数中的值并返回

var foo = {id: 0, name: "aaa", age: 33}

var bar = _.pick(foo, ['name', 'age'])

//bar = {name: "aaa", age: 33}

_.get()

获取数据

var object = { 'a': [{ 'b': { 'c': 3 } }] };

_.get(object, 'a[0].b.c');

// => 3

_.get(object, ['a', '0', 'b', 'c']);

// => 3

_.get(object, 'a.b.c', 'default');

// => 'default'

_.find()

查找数组

var foo = [

    {id: 0, name: "aaa", age: 33},

    {id: 1, name: "bbb", age: 25}

]

var bar = _.find(foo, ['id', 0])

//bar = {id: 0, name: "aaa", age: 33}

_.orderBy()

根据条件排序,返回新数组

var users = [    { 'user': 'fred', 'age': 48 },    { 'user': 'barney', 'age': 34 },    { 'user': 'fred', 'age': 40 },    { 'user': 'barney', 'age': 36 }];

// 以 `user` 升序排序 再 `age` 以降序排序。

_.orderBy(users, ['user', 'age'], ['asc', 'desc']);

// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

_.groupBy()

根据条件分组,返回新数组

_.groupBy([6.1, 4.2, 6.3], Math.floor);

// => { '4': [4.2], '6': [6.1, 6.3] }

// The `_.property` iteratee shorthand.

_.groupBy(['one', 'two', 'three'], 'length');

// => { '3': ['one', 'two'], '5': ['three'] }

_.filter()

根据条件过滤出符合条件的元素,返回新数组

var foo = var foo = [    {id: 0, name: "aaa", age: 33},    {id: 1, name: "bbb", age: 25}]

var bar = _.filter(foo, ['name', "aaa"])

//bar = [{id: 0, name: "aaa", age: 33}]

_.reject()

根据条件去除某个元素。

var foo = [

    {id: 0, name: "aaa", age: 33},

    {id: 1, name: "bbb", age: 25}

]

var bar = _.reject(foo, ['id', 0])

//bar = [{id: 1, name: "bbb", age: 25}]

_.cloneDeep()

深拷贝

_.keyBy()

以某个属性为键,将数组转为对象

var foo = var foo = [

    {id: 0, name: "aaa", age: 33},

    {id: 1, name: "bbb", age: 25}

]

var bar = _.keyBy(foo, 'name')

//bar = {

// aaa: {id: 0, name: "aaa", age: 33},

// bbb: {id: 1, name: "bbb", age: 25}

//}

_.debounce(func, [wait=0], [options=])

防抖

\

_.throttle(func, [wait=0], [options=])

节流