+2

Sử dụng LODASH trong dự án Javascript

Bài viết này mình giới thiệu về một thư viện javascript rất hay đó là LODASH nó như là LINQ trong javascript. Đảm bảo sau khi sử dụng nó bạn sẽ không thể thiếu trong mỗi dự án Javascript của mình

1.Giới thiệu về LODASH

Phiên bản trước của lodash là underscore. Có thể xem lodash là phiên bản mở rộng với nhiều chức năng hơn và có performance tốt hơn

Lodash cung cấp rất nhiều chức năng, chia làm vài nhóm như: Array, Collection, Date, Function, Lang, Math, Number, Object, Seq, String, Util, Properties ...

Phạm vi bài viết này là giới thiệu về thư viện, nên mình sẽ đưa ra một số chức năng chính. Bạn có thể tham khảo tài liệu về lodash tại đây https://lodash.com/docs

2.Demo một số function hay sử dụng trong điều kiện check trong nhóm Lang

_.isNull(null);
// ➜ true

_.isNull(void 0);
// ➜ false

_.isNumber(3);
// ➜ true

_.isNumber(Number.MIN_VALUE);
// ➜ true

_.isNumber(Infinity);
// ➜ true

_.isNumber('3');
// ➜ false

_.isObject({});
// ➜ true

_.isObject([1, 2, 3]);
// ➜ true

_.isObject(_.noop);
// ➜ true

_.isObject(null);
// ➜ false

_.isUndefined(void 0);
// ➜ true

_.isUndefined(null);
// ➜ false

_.isDate(new Date);
// ➜ true

_.isDate('Mon April 23 2012');
// ➜ false

_.isEqual: So sánh 2 object hoặc 2 array. Hàm này sẽ so sánh từng field của object hoặc từng phần tử của array

var object = { 'a': 1 };
var other = { 'a': 1 };

_.isEqual(object, other);
// ➜ true

// Javascript thông thường
object === other;
// ➜ false

3.Một số hàm của Array, Collection

.filter(collection, [predicate=.identity]): Giống với java 8 stream filter predicate

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']

_.difference([arrays]): Lấy phần khác nhau của 2 array

_.difference([2, 1], [2, 3]);
// ➜ [1]

_.intersection([arrays]): Lấy phần tử chung của 2 array

_.intersection([2, 1], [2, 3]);
// ➜ [2]

_.union([arrays]): Gộp nhiều array làm 1

_.union([2], [1, 2]);
// ➜ [2, 1]

_.shuffle(collection): Tạo ra 1 danh sách ngẫu nhiên từ 1 danh sách ban đầu, thích hợp cho làm game kiểu câu đố

_.shuffle([1, 2, 3, 4]);
// ➜ [4, 1, 3, 2]

3.Một số hàm của String

_.camelCase([string='']): chuyển đổi string to camel Case

_.camelCase('Foo Bar');
// ➜ 'fooBar'

_.camelCase('--foo-bar--');
// ➜ 'fooBar'

_.camelCase('__FOO_BAR__');
// ➜ 'fooBar'

_.capitalize([string='']): Viết hoa chữ cái đầu tiên của từ

_.capitalize('FRED');
// ➜ 'Fred'

3.Một số hàm của Object

_.keys(object): Liệt kê key của object

function Foo() {
  this.a = 1;
  this.b = 2;
}

Foo.prototype.c = 3;

_.keys(new Foo);
// ➜ ['a', 'b'] (iteration order is not guaranteed)

_.keys('hi');
// ➜ ['0', '1']

Trong bài viết đã giới thiệu sơ qua về LODASH, về cơ bản nó cung cấp Util khá đầy đủ, việc lập trình với javascript xử lý với object, array, collection khá là OK.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.