3 cách xóa phần tử bị duplicate trong mảng
Bài viết được sự cho phép của tác giả Lưu Bình An
Nếu phần tử trong mảng chỉ là kiểu primitive thì rất đơn giản nếu muốn xóa tất cả phần tự bị trùng
const values = ['a','b','c','a']
const uniqueValues = [...new Set(values)];
Còn nếu phần tử trong mảng là object
thì ta làm sao?
const members = [
{
first: 'Jane',
last: 'Bond',
id: '10yejma',
},
{
first: 'Lars',
last: 'Croft',
id: '1hhs0k2',
},
{
first: 'Jane',
last: 'Bond',
id: '1y15hhu',
},
];
Cách 1: tạo mảng mới ko chứa phần tử bị trùng
function containsMember(memberArray, member) {
return memberArray.find(m => m.first === member.first && m.last === member.last)
}
const uniqueValues = [];
for (const m of members) {
if (!containsMember(uniqueValues, m)) {
uniqueValues.push(m);
}
}
Cách 2: dùng filter()
function getIndexOfMember(memberArray, member) {
return memberArray.findIndex(m => m.first === member.first && m.last === member.last)
}
const uniqueValues = members.filter((m, index, ms) => getIndexOfMember(ms, m) === index);
Cách 3: sử dụng Map
const uniqueKeyToMember = new Map(members.map(m => [m.first+'\t'+m.last, m]));
const uniqueMembers = [...uniqueKeyToMember.values()];
Eliminating duplicate objects: three approaches
Bài viết gốc được đăng tải tại vuilaptrinh.com
Có thể bạn quan tâm:
- 5 cách chia một mảng lớn thành nhiều mảng nhỏ trong Javascript
- Sử dụng mảng đúng cách trong PHP – Bạn đã bao giờ nghĩ?
- Tìm hiểu phương thức slice của mảng trong JavaScript
Xem thêm các việc làm Developer hấp dẫn tại TopDev
- S So sánh AWS, Google Cloud và Azure năm 2023
- D Data Analyst là gì? Chuyện nghề của một Data Analyst
- C Công nghệ nào đứng sau AI tạo ra MC ảo đang hot rần rần?
- D Dân IT có thể được ChatGPT hỗ trợ code tự động hóa như thế nào?
- 6 6 khó khăn có thể bạn sẽ gặp khi theo học ngành CNTT
- Đ ĐỐI THOẠI VỚI DOANH NGHIỆP HÀN QUỐC VỀ PHÁT TRIỂN NHÂN LỰC CHẤT LƯỢNG CAO
- K KICC HCMC x TOPDEV – Nắm giữ sứ mệnh chắp cánh cho nhân tài IT Việt Nam vươn mình bứt phá
- S Segment Anything Model – Bước đột phá mới của Meta AI
- T Tất cả những điều cần biết về ChatGPT-4
- N Ngành IT vẫn HOT dù đứng giữa “tâm bão” suy thoái kinh tế