Tìm hiểu về Lodash
1. Giới thiệu về Lodash Tiền thân của Lodash là thư viện underscorejs có thể xem Lodash là phiên bản mở rộng hơn của underscore, với nhiều chức năng hơn và có hiệu năng cao hơn. Lodash có nhiều chức năng và có thể chia ra thành: chức năng hỗ trợ xử lý Array, chức năng xử lý Object, chức năng xử ...
1. Giới thiệu về Lodash
Tiền thân của Lodash là thư viện underscorejs có thể xem Lodash là phiên bản mở rộng hơn của underscore, với nhiều chức năng hơn và có hiệu năng cao hơn. Lodash có nhiều chức năng và có thể chia ra thành: chức năng hỗ trợ xử lý Array, chức năng xử lý Object, chức năng xử lý Array, nhóm xử lý Date, Function, Lang, Math, Number,.. Danh sách các chức năng cùng doc của Lodash có thể tìm thấy tại đây. Cài đặt: Với brower <script src="lodash.js"></script> Sử dụng npm:
$ npm i -g npm $ npm i --save lodash
2. Một số function của Lodash xử lý String
_.isUndefined, _.isNull, _.isFunction, _.isNumber, _isObject: Đây là một số function để kiểm tra kiểu của biến, cũng như xem biến có undefined, null hay ko?
_.isUndefined(void 0); // => true _.isUndefined(null); // => false _.isNull(null); // => true _.isNull(void 0); // => false _.isFunction(_); // => true _.isFunction(/abc/); // => false _.isNumber(1); // => true _.isNumber(Infinity); // => true _.isNumber('1'); // => false _.isObject({}); // => true _.isObject([1, 2, 3]); // => true _.isObject(null); // => false
_.isEqual: So sánh 2 array, hoặc 2 object
var object = { 'a': 1 }; var other = { 'a': 1 }; _.isEqual(object, other); // => true object === other; // => false
_.capitalize: Viết hoa kí tự đầu của string _.pad, _.padStart, _.padEnd: Căn giữa, trái, phải string bằng cách thêm khoảng trắng vào string
_.camelCase('Foo Bar'); // → 'fooBar' _.camelCase('--foo-bar'); // → 'fooBar' _.capitalize('fred'); // → 'Fred' _.pad('abc', 8); // => ' abc ' _.padStart('abc', 6); // => ' abc'
_.trim, _.trimLeft, _.trimRight: Bỏ khoảng trắng _.trunc: Cắt string và thêm … vào cuối string nếu string quá dài (Chức năng khá hay) _.words: Cắt các từ trong string, bỏ vào 1 mảng
_.trim(' abc '); // → 'abc' _.trunc('hi-diddly-ho there, neighborino', 24); // → 'hi-diddly-ho there, n…' _.words('fred, barney, & pebbles'); // → ['fred', 'barney', 'pebbles']
_.startCase: Viết hoa các chữ cái đầu mỗi từ trong string, khá hay _.startsWith, _.endsWith: Kiểm tra chuỗi đưa vào có phải nằm ở đầu/cuối string cần so sánh hay ko
_.startCase('--foo-bar'); // → 'Foo Bar' _.startCase('fooBar'); // → 'Foo Bar' _.startsWith('abc', 'a'); // → true _.startsWith('abc', 'b'); // → false _.endsWith('abc', 'c'); // → true _.endsWith('abc', 'b'); // → false
3. Một số function của object
_.functions: Trả về tên toàn bộ những function của 1 object
//Trả những function của lodash _.functions(_); // → ['after', 'ary', 'assign', …]
_.has: Kiểm tra xem 1 object có property, hoặc function với tên là tham số được truyền vào hay ko _.keys: Trả về tên toàn bộ những thuộc tính của 1 object
var object = { 'a': 1, 'b': 2, 'c': 3 }; _.has(object, 'b'); // → true function Foo() { this.a = 1; this.b = 2; } Foo.prototype.c = 3; _.keys(new Foo); // → ['a', 'b'] (iteration order is not guaranteed)
_.pick: Chỉ lấy 1 thuộc tính của object _.omit: Bỏ 1 thuộc tính của object, lấy toàn bộ những thuộc tính còn lại
var object = { 'user': 'fred', 'age': 40 }; _.pick(object, 'user'); // → { 'user': 'fred' } _.omit(object, 'age'); // → { 'user': 'fred' }
4. Một số function của array
Như đã nói, lodash hỗ trợ rất nhiều hàm xử lý array, giúp việc xử lý array đơn giản hơn rất nhiều. Một lưu ý trong lodash, có 2 kiểu để gọi hàm với array như sau:
var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false } ]; //Kiểu 1, gọi như 1 function bình thường _.filter(users, 'active', false) // → [{ 'user': 'barney', 'age': 36, 'active': true }]; //Kiểu 2, wrap array vào rồi gọi hàm _(users).filter('active', false).value() // → [{ 'user': 'barney', 'age': 36, 'active': true }];
Dưới đây là một số hàm xử lý array khá hữu dụng:
_.difference: Lấy những phần tử khác nhau giữa 2 array _.intersection: Lấy những phần tử giống nhau giữa 2 hoặc nhiều array _.union: Hợp 2 hoặc nhiều array lại với nhau
_.difference([1, 2, 3], [4, 2]); // → [1, 3] _.intersection([1, 2], [4, 2], [2, 1]); // → [2] _.union([1, 2], [4, 2], [2, 1]); // → [1, 2, 4]
_.findIndex: Tìm index của phần tử đầu tiên thỏa điều kiện _.find: Tìm 1 phần tử trong array _.first, _.last: lấy phần tử đầu tiên và cuối cùng của array
var users = [ { 'user': 'barney', 'active': false }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': true } ]; _.findIndex(users, function(chr) { return chr.user == 'barney'; }); // → 0 var users = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true } ]; _.result(_.find(users, function(chr) { return chr.age < 40; }), 'user'); // → 'barney' _.first([1, 2, 3]); // → 1 _.last([1, 2, 3]); // → 3
_.flatten: Làm dẹp array (Nếu array có chứa array thì cho ra 1 array duy nhất) _.shuffle: Tương tự như xóc bài, tạo ra 1 array mới, chứa các phần tử của array cũ theo thứ tự ngẫu nhiên
_.flatten([1, [2, 3, [4]]]); // → [1, 2, 3, [4]]; // using `isDeep` _.flatten([1, [2, 3, [4]]], true); // → [1, 2, 3, 4]; _.shuffle([1, 2, 3, 4]); // → [4, 1, 3, 2]
Tham khảo: https://lodash.com/