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
排序
参数
collection
(Array|Object): 用来迭代的集合。[iteratees=[_.identity]]
(Array[]|Function[]|Object[]|string[]): 排序的迭代函数。[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
过滤
参数
collection
(Array|Object): 一个用来迭代的集合。[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
分组
参数
collection
(Array|Object): 一个用来迭代的集合。[iteratee=_.identity]
(Array|Function|Object|string): 这个迭代函数用来转换key。
返回
一个新的集合
示例
// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }
sortBy
排序,感觉跟orderBy的作用差不多,所以我经常看心情选一个用哈哈哈哈
参数
collection
(Array|Object): 用来迭代的集合。[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]]