Các ví dụ về JS xóa, search, Union hay mảng, gộp 2 mảng và tìm kết quả giao nhau
1. Xóa phần tử trùng trong mảng
Về JS thì phiên bản hiện tại bạn có thể làm được điều đó cực kì dễ dàng
- Đưa tất cả vào 1 mảng
- Sử dụng từ khóa "new Set"
Ex.
var values = [1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 3, 2, 1];
var unique = [...new Set(values)];
console.log(unique);
=> result [1, 2, 3, 4, 5, 6, 7];
2. Sử dụng Filter để search trong JS
Trong JS phiên bản hiện tại thì bạn có thể làm điều này bằng từ khóa "filter" với điều kiện là từ khóa tìm:
Ex.
var person = [
{id: 1, name: 'Alex', age: 22, group: 'author'},
{id: 2, name: 'Eddies', age: 32, group: 'admin'},
{id: 3, name: 'Link', age: 21, group: 'seo'},
{id: 4, name: 'Will', age: 27, group: 'seo'},
];
var res = person.filter(it => it.name.includes('ill));
=> result []
Còn 1 cách là search trong JS nhưng không phân biệt hoa thường chúng ta dùng "RegExp"
var res = person.filter(it => new RegExp('ill', 'i').test(it.name));
=> result
[ {id: 4, name: 'Will', age: 27, group: 'seo'}]
3. Dùng hàm "some()" để kiểm tra xem có ít nhất một element trong mảng thỏa điều kiện đặt ra
var hasAdmin = person.some(user => user.group === 'admin');
result hasAdmin is true;
4. Giảm số chiều của mảng
Ví dụ chúng ta có mảng kiểu [...[], ...[1, 2, 3]] sau đó chúng ta muốn nó về dạng
[1, 2, 3]
JS có "reduce" sẽ sắp xếp và gom các phần tử lại thành 1 mảng duy nhất
Ex.
var need = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var flat = need.reduce((acc, it) => [...acc, ...it], []);
//result [1, 2, 3, 4, 5, 6, 7, 8, 9]
Hoặc đơn giản hơn thì chúng ta dùng concat.apply
var flat = [].concat.apply([], need);
5. Lấy giá trị unique của các item trong một mảng
Hiện tại mình có rất nhiều Group trong nhóm nhưng bị trùng hơi nhiều giờ mình sẽ in ra Unique của group
var listOfPersonGroups = [...new Set(person.map(it => it.group))];
=> result listOfPersonGroups ['author', 'seo', 'admin']
6. Chuyển đổi mảng chứa giá trị độ F sang giá trị độ C
var celsius = [-15, -5, 0, 10, 10, 16, 20, 24, 32];
var fahrenheit = celsius.map(t => t * 1.8 + 32);
=> result [5, 23, 32, 50, 60.8, 68, 75.2, 89.6]
7. Chuyển Object thành String
var params = {lat: 45, lag: 6, alt: 1000}
var queryString = Object.entries(params).map
(p => encodeURIComponent(p[0]) + '=' + encodeURIComponent(p[1])).join('&');
=> result "lat=45&lag=6&lat=1000";
8. Echo dữ liệu trong mảng
Bạn phải phân biệt kĩ giữa ' ' và ` `
var person = [
{id: 1, name: 'Alex', age: 22, group: 'author'},
{id: 2, name: 'Eddies', age: 32, group: 'admin'},
{id: 3, name: 'Link', age: 21, group: 'seo'},
{id: 4, name: 'Will', age: 27, group: 'seo'},
];
person.map(({id, age, group}) => `n${id} ${age} ${group}).join('');
=> result
1 22 author
2 32 admin
3 21 seo
4 27 seo
9. Gáp hai mảng lại thành một và lấy kết quả giao nhau của hai mảng
- Về việc gáp hai mảng lại thành một chỉ cần dùng set là giải quyết được vấn đề này
var arrA = [1, 2, 3, 4. 5]
var arrB = [6, 2, 7, 8];
var merge = [...new Set([...arrA, ...arrB])];
=> result [1, 2, 3, 4, 5, 6, 7, 8]
với new Set vừa merge và lọc trùng luôn
- Lấy kết quả giao giữa hai mảng
var arrA = [1, 2, 3, 4. 5]
var arrB = [6, 2, 7, 8];
arrA.filter(it => arrB.includes(it));
=> result [2]
Comments
Post a Comment