3 cách xóa phần tử bị duplicate trong mảng

Công Nghệ
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 5 cách chia một mảng lớn thành nhiều mảng nhỏ trong Javascript Bạn hoàn toàn có...

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:

Xem thêm các việc làm Developer hấp dẫn tại Station D

Bài viết liên quan

Ngành IT: Làm việc “trên mây” kiếm nhiều tiền nhất hiện nay

Ngành IT: Làm việc “trên mây” kiếm nhiều tiền nhất hiện nay

Kết quả từ cuộc khảo sát đầu năm của Station D về lương bổng của lập trình viên cho thấy nhiều thay đổi đã và đang diễn ra trong ngành IT – cuộc khảo sát tập trung vào các câu hỏi về khối lượng công việc, triển vọng cũng như...

By stationd
Đâu chỉ mỗi Bitcoin, công nghệ Blockchain còn nhiều ứng dụng hơn thế!

Đâu chỉ mỗi Bitcoin, công nghệ Blockchain còn nhiều ứng dụng hơn thế!

Khi nhắc đến blockchain , lập tức mọi người thường nghĩ ngay đến các loại tiền mã hóa, chẳng hạn như bitcoin. Tuy nhiên, blockchain lại là công nghệ tạo ra tiền mã hóa nhưng bản thân công nghệ này không phải là tiền mã hóa như cách mà chúng...

By stationd
Mock phương thức static trong Unit Test sử dụng PowerMock

Mock phương thức static trong Unit Test sử dụng PowerMock

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết này, mình sẽ hướng dẫn các bạn Mock các phương thức static trong Unit Test các bạn nhé! Nếu bạn nào chưa biết về Mock trong Unit Test thì mình có thể nói sơ qua...

By stationd