最近在做项目的时候需要去处理不同格式的数据,因为项目用的是antd的3.0版本,所以为了神仙的表单,我就需要去处理不同的数据,所以发现了lodash这个神仙的宝藏!宝藏!宝藏!
用起来,用起来,用起来!!!
首先把链接给大家安排上,毕竟入口找到用起来就方便了~
https://www.lodashjs.com/
首先给大家介绍几个我比较常用的
首先登场的是mapValues 是对象处理比较常用的方法,官方给出的例子是
var users = {
'fred': { 'user': 'fred', 'age': 40 },
'pebbles': { 'user': 'pebbles', 'age': 1 }
};
_.mapValues(users, function(o) { return o.age; });
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
// The `_.property` iteratee shorthand.
_.mapValues(users, 'age');
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
对应分析一下,其实就是首先你需要将处理的数据进行传入,然后传入的第二个参数是你想要处理成什么样子,回调函数也可以,对应的属性也可以,多方便,多方便
再给大家混合使用一个,复杂的转换
_.mapValues(users, value => ({value}));
// => {'fred':{ value : {age:40,user:"fred"}},'pebbles':{ value : { age:1 ,user:"pebbles" }}
大家在使用的时候也可以试试omit函数,这个对象由忽略属性之外的object自身和继承的可枚举属性组成。
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.omit(object, ['a', 'c']);
// => { 'b': '2' }
如果某些属性不想要进行转换那么直接去除就可以了!!!
这个时候你就想说了我转换过去我怎么转换回来呢
_.mapValues(_.omitBy(users,_.isUndefined),"value");
数据就会转变为原来的格式啦
omitBy又是什么函数呢
这个方法一个对象,这个对象忽略 predicate(断言函数)判断不是真值的属性后,object自身和继承的可枚举属性组成。predicate调用与2个参数:(value, key)。
例子:
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.omitBy(object, _.isNumber);
// => { 'b': '2' }
除了这个比较好用的数组处理方式就是
_.chunk(array, [size=1])
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
第一个传入你需要处理的数组,第二个传入你想要设置的每个数据区块的长度哟,这样就可以把一个简单的数组变成二维数组啦
还有其他的好多好多的api等着你去用呀!冲!