lodash常用方法
有关Array的方法:
1._.chunk(array, [size=1]),返回size长度数组组成的新数组
_.chunk(['a', 'b', 'c', 'd'], 2); // => [['a', 'b'], ['c', 'd']] _.chunk(['a', 'b', 'c', 'd'], 3); // => [['a', 'b', 'c'], ['d']]
_.compact(array), 返回去除false
, null
, 0
, ""
, undefined
, NaN的数组
_.compact([0, 1, false, 2, '', 3]); // => [1, 2, 3]
3._.findIndex(array, [predicate=_.identity], [fromIndex=0]),返回迭代结果为true的第一个元素的索引
var users = [ { 'user': 'barney', 'active': false }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': true } ]; _.findIndex(users, function(o) { return o.user == 'barney'; }); // => 0 // The `_.matches` iteratee shorthand. _.findIndex(users, { 'user': 'fred', 'active': false }); // => 1 // The `_.matchesProperty` iteratee shorthand. _.findIndex(users, ['active', false]); // => 0 // The `_.property` iteratee shorthand. _.findIndex(users, 'active'); // => 2
4. _.flatten(array),摊平数组一个维度,返回新的数组
_.flatten([1, [2, [3, [4]], 5]]); // => [1, 2, [3, [4]], 5]
5. _.head(array),返回数组第一个元素
_.head([1, 2, 3]); // => 1 _.head([]); // => undefined
6._.union([arrays]), 返回只有唯一值得数组,返回新的数组
_.union([2], [1, 2]); // => [2, 1]
有关Collection的方法:
1._.flatMap(collection, [iteratee=_.identity]), 对集合的每个元素迭代,摊平迭代后的结果,返回新的数组
function duplicate(n) { return [n, n]; } _.flatMap([1, 2], duplicate); // => [1, 1, 2, 2]
2. _.groupBy(collection, [iteratee=_.identity]), 集合的元素经过迭代产生对象的key,key对应的value是产生key的那些元素,value是按顺序来的
_.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'] }
3._.keyBy(collection, [iteratee=_.identity]),
集合的元素经过迭代产生对象的key,key对应的value是产生key的最后一个元素
var array = [ { 'dir': 'left', 'code': 97 }, { 'dir': 'right', 'code': 100 }, { 'dir': 'left11', 'code': 97 } ]; _.keyBy(array, function(o) { return String.fromCharCode(o.code); }); // => {a: Object {dir: "left11", code: 97}, d: Object {dir: "right", code: 100}} var array1 = [ { 'dir': 'left', 'code': 97 }, { 'dir': 'right', 'code': 100 } ]; _.keyBy(array1, 'dir'); // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
有关Function的方法:
1._.debounce(func, [wait=0], [options={}]),调用的函数func,多久调用一次wait,提供option表示是否应在等待超时的前边或者后边调用
jQuery(element).on('click', _.debounce(sendMail, 300, { 'leading': true, 'trailing': false }));
2._.throttle(func, [wait=0], [options={}]),调用的函数func,多久调用一次wait,提供option表示是否应在等待超时的前边或者后边调用
// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); jQuery(element).on('click', throttled);
有关Lang的方法
1._.clone(value),创建一个value的浅拷贝
var objects = [{ 'a': 1 }, { 'b': 2 }]; var shallow = _.clone(objects); console.log(shallow[0] === objects[0]); // => true
2._.cloneDeep(value),深拷贝
This method is like _.clone except that it recursively递归地 clones value. var objects = [{ 'a': 1 }, { 'b': 2 }]; var deep = _.cloneDeep(objects); console.log(deep[0] === objects[0]); // => false
有关Object的方法
1._.omit(object, [paths]),忽略object里面paths里面的属性,返回带有剩下属性的对象,是新对象
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.omit(object, ['a', 'c']); // => { 'b': '2' }
2._.pick(object, [paths]),返回带有paths里面属性的对象,是新对象
var object = { 'a': 1, 'b': '2', 'c': 3 }; _.pick(object, ['a', 'c']); // => { 'a': 1, 'c': 3 }
有关String的方法
1._.camelCase([string='']),返回驼峰形式的
_.camelCase('Foo Bar'); // => 'fooBar' _.camelCase('--foo-bar--'); // => 'fooBar' _.camelCase('__FOO_BAR__'); // => 'fooBar'
2._.snakeCase([string='']),返回下划线形式的
_.snakeCase('Foo Bar'); // => 'foo_bar' _.snakeCase('fooBar'); // => 'foo_bar' _.snakeCase('--FOO-BAR--'); // => 'foo_bar'
3._.trim([string=''], [chars=whitespace]),移除空格或者特定字符
_.trim(' abc '); // => 'abc' _.trim('-_-abc-_-', '_-'); // => 'abc' _.map([' foo ', ' bar '], _.trim); // => ['foo', 'bar']
有关Util的方法
1._.noop(),返回undefined
_.times(2, _.noop); // => [undefined, undefined]
2._.times(n, [iteratee=_.identity]), 返回调用迭代器n次生成的结果构成的数组
_.times(3, String); // => ['0', '1', '2'] _.times(4, _.constant(0)); // => [0, 0, 0, 0]
posted on 2021-06-10 00:29 yemiaomiao 阅读(427) 评论(0) 编辑 收藏 举报