Lodash là một thư viện JavaScript phổ biến cung cấp nhiều hàm tiện ích để làm việc với mảng, đối tượng,... Nó giúp lập trình viên viết mã ngắn gọn, dễ đọc và bảo trì hơn.
Sau đây là các hàm thường dùng với mảng và đối tượng
Dùng để loại bỏ các cặp key-value theo điều kiện trả về
let newObj = _.omitBy(obj, v => v === '');
Kết quả: Trả về object mới không có thuộc tính nào có giá trị là string rỗng.
Ví dụ:
let obj = {
key1: 12,
key2: "",
key3: 'name'
}
let newObj = _.omitBy(obj, v => v === '');
console.log(newObj);
// Kết quả in ra:
{
key1: 12,
key3: 'name'
}
Loại bỏ các object của mảng ban đầu có thuộc tính bằng với thuộc tính của object trong mảng được truyền vào
const newArray =. _.differenceBy(array_1, array_2, 'id');
Trong đó:
Ví dụ:
const arr1 = [{ id: 1, name: 'A' }, { id: 2, name: 'B' }];
const arr2 = [{ id: 1, name: 'C' }];
const newArr = _.differenceBy(arr1, arr2, 'id')
console.log(newArr);
// Kết quả: [{id: 2, name: 'B'}]
Nhóm các object trong mảng dựa theo thuộc tính nào đó
let groupByName = _.groupBy(arrObj, ({ name }) => name);
Trong đó:
Ví dụ:
let arrObj = [
{
name: "bqsoft",
address: "Đà nẵng",
},
{
name: "dicol",
address: "Quảng nam",
},
{
name: "bqsoft",
address: "Huế",
}
]
let groupByName = _.groupBy(arrObj, ({ name }) => name);
console.log(groupByName);
// Kết quả:
{
"bqsoft": [
{
"name": "bqsoft",
"address": "Đà nẵng"
},
{
"name": "bqsoft",
"address": "Huế"
}
],
"dicol": [
{
"name": "dicol",
"address": "Quảng nam"
}
]
}
Merge 2 mảng với nhau dựa trên key.
let merged = _.merge(_.keyBy(users, 'id'), _.keyBy(onlineUsers, 'userId'));
let allUser = _.values(merged);
Trong đó:
Ví dụ:
const users = [
{
id: '1',
age: 20,
},
{
id: '2',
age: 19,
},
{
id: '3',
age: 25
}
]
const onlineUsers = [
{
userId: '1',
status: true
},
{
userId: '3',
status: false,
},
]
let merged = _.merge(_.keyBy(users, 'id'), _.keyBy(onlineUsers, 'userId'));
let allUser = _.values(merged);
console.log(allUser, 'allUser')
// Kết quả:
[
{
"id": "1",
"age": 20,
"userId": "1",
"status": true
},
{
"id": "2",
"age": 19
},
{
"id": "3",
"age": 25,
"userId": "3",
"status": false
}
]
Sắp xếp mảng các object dựa trên một hoặc nhiều thuộc tính của object theo thứ tự nào đó
_.orderBy(arr, ['thuộc_tính_1'],['desc'])
Trong đó:
Ví dụ:
const arr = [
{
name: "Bqsoft",
staff: 20
},
{
name: "Dicol",
staff: 12
},
{
name: "Rionlab",
staff: 40
}
]
const newArr = _.orderBy(arr, ['staff'],['desc'])
console.log(newArr);
// Kết quả:
[
{
"name": "Rionlab",
"staff": 40
},
{
"name": "Bqsoft",
"staff": 20
},
{
"name": "Dicol",
"staff": 12
}
]