常用的lodash方法

Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。
为什么选择lodash
Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。
Lodash 的模块化方法 非常适用于:
遍历 array、object 和 string
对值进行操作和检测
创建符合功能的函数
如何下载
npm i -g npm
npm i --save lodash
在Node.js中使用
var _ = require('lodash');

常用方法
_.every

(boolean): 如果所有元素检查后都都返回真值,那么就返回true,否则返回 false 。

注意: 这个方法对于对于空集合返回 true,因为空集合的任何元素都是true。

var users = [
  { 'user': 'barney', 'age': 36, 'active': false },
  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.every(users, { 'user': 'barney', 'active': false });
// => false
 
_.every(users, ['active', false]);
// => true

_.every(users, 'active');
// => false
_.some

(boolean): 如果任意元素经检查都为真值,返回 true ,否则返回 false 。

_.some([null, 0, 'yes', false], Boolean);
// => true
 
var users = [
  { 'user': 'barney', 'active': true },
  { 'user': 'fred',   'active': false }
];
 
_.some(users, { 'user': 'barney', 'active': false });
// => false

_.some(users, ['active', false]);
// => true
 
_.some(users, 'active');
// => true
_.filter

(Array): 返回一个新的过滤后的数组。

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
 
_.filter(users, { 'age': 36, 'active': true });
// => objects for ['barney']
 
_.filter(users, ['active', false]);
// => objects for ['fred']
 
_.filter(users, 'active');
// => objects for ['barney']
_.find

(*): 返回匹配元素,否则返回 undefined。

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },
  { 'user': 'fred',    'age': 40, 'active': false },
  { 'user': 'pebbles', 'age': 1,  'active': true }
];
 
_.find(users, function(o) { return o.age < 40; });
// => object for 'barney'
 
_.find(users, { 'age': 1, 'active': true });
// => object for 'pebbles'
 
_.find(users, ['active', false]);
// => object for 'fred'
 _.find(users, ['active', false],1);
// => object for 'fred'

_.find(users, 'active');
// => object for 'barney'
_.includes

(boolean): 如果找到 value 返回 true, 否则返回 false。

_.includes([1, 2, 3], 1);
// => true
 
_.includes([1, 2, 3], 1, 2);
// => false
 
_.includes({ 'user': 'fred', 'age': 40 }, 'fred');
// => true
 
_.includes('pebbles', 'eb');
// => true
_.size

(number): 返回集合的长度。

_.size([1, 2, 3]);
// => 3
 
_.size({ 'a': 1, 'b': 2 });
// => 2
 
_.size('pebbles');
// => 7
_.groupBy

分组输出添加自己的键。创建一个对象,key 是遍历(集合) 中的每个元素返回的结果。 分组值的顺序是由他们出现在 (集合) 中的顺序确定的。每个键对应的值负责生成 key 的元素组成的数组。

(Object): 返回一个组成聚合的对象。

 var stu = [
             { name: '张三', score: 60 },
             { name: '李四', score: 40 },
             { name: '王二', score: 80 },
             { name: '王二', score: 90 }
           ];
var group = _.groupBy(stu, 'name');
//{ '张三':  [{ name: '张三', score: 60 }],'李四':[{ name: '李四', score: 40 }],
//  '王二':[ { name: '王二', score: 80 },{ name: '王二', score: 90 }] }

_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
 
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }
_.merge

(Object): 返回 object.

var object = {
  'a': [{ 'b': 2 }, { 'd': 4 }]
};
 
var other = {
  'a': [{ 'c': 3 }, { 'e': 5 }]
};
 
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
_.pick

根据所选对象创建一个新对象。

var object = { 'a': 1, 'b': '2', 'c': 3 };
 
_.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }
_.flattenDeep

(Array): 返回一个的新一维数组。

_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]
_.zipObject

第一个数组中的值作为(属性名),第二个数组中的值作为相应的(属性)。

(Object):返回一个新对象。

_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }
_.isEqual

执行深比较来确定两者的值是否相等。

(boolean): 如果 两个值完全相同,那么返回 true,否则返回 false。

var object = { 'a': 1 };
var other = { 'a': 1 };
 
_.isEqual(object, other);
// => true
 
object === other;
// => false
_.isEmpty

检验value是否为空。

(boolean): 如果 value 为空,那么返回 true,否则返回 false。

_.isEmpty(null);
// => true
 
_.isEmpty(true);
// => true
 
_.isEmpty(1);
// => true
 
_.isEmpty([1, 2, 3]);
// => false
 
_.isEmpty({ 'a': 1 });
// => false
_.fill

使用 value 值来(替换)array,从start位置开始, 到end位置结束(但不包含end位置)。

注意: 这个方法会改变 array(注:不是创建新数组)。

(Array): 返回 array。

var array = [1, 2, 3];
 
_.fill(array, 'a');
console.log(array);
// => ['a', 'a', 'a']
 
_.fill(Array(3), 2);
// => [2, 2, 2]
 
_.fill([4, 6, 8, 10], '*', 1, 3);
// => [4, '*', '*', 10]
_ .chain

创建一个lodash包装实例,包装value以启用显式链模式。要解除链必须使用 _.value 方法。

var users = [
  { 'user': 'barney',  'age': 36 },
  { 'user': 'fred',    'age': 40 },
  { 'user': 'pebbles', 'age': 1 }
];
 
var youngest = _
  .chain(users)
  .sortBy('age')
  .map(function(o) {
    return o.user + ' is ' + o.age;
  })
  .head()
  .value();
// => 'pebbles is 1'

你可能感兴趣的:(js,javascript,前端)