underscore.js
在做本地缓存视频管理的时候,需要对数组进行大量的操作,本来React Native 有lodash工具库,旁边的前端同事使用的是underscore,大神在边上我就使用了underscore,其实api和lodash差不多,只是lodash更加完善,简单的处理underscore也足够。
直接下载underscore-min.js
1
| import _ from './path/underscore-min';
|
下面是我主要用到的Api:
- map方法遍历数组或对象,将返回的结果组成一个新的数组或对象
1 2 3 4 5 6 7 8 9 10 11 12
| let data = _.map([1,2,3],function(n){ retrun n*2; })
let data = _map([{name:'james'},{name:'jakson'},{name:'tom'}],function(item){ return { name:item.name, isChecked:true } })
|
- filter返回结果为true的成员
1 2
| let data = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
|
- reject返回操作结果为false的成员
1 2
| let data = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
|
- difference
1 2
| let data = _.difference([1,2,3,5], [2,3,6,7,8])
|
- uniq
1 2 3 4 5 6 7 8 9
| _.uniq(array, [isSorted], [iteratee])
let data = _uniq([1,2,3,4,3])
let data= _uniq([{id:1,name:'bob'},{id:2,name:'jane'},{id:3,name:'jack'},{id:1,name:'bob'}],false,(item)=>{ return item.id })
|
- indexOf
1 2
| _.indexOf([1, 2, 3], 2);
|
- contains
1 2 3
| _.contains(list, value, [fromIndex])
|
compact返回一个除去所有false值的 array副本。
在javascript中, false, null, 0, “”, undefined 和 NaN 都是false值.
1 2
| _.compact([0, 1, false, 2, '', 3]); => [1, 2, 3]
|
更多Api参考文档http://www.css88.com/doc/underscore/