Computer >> Máy Tính >  >> Lập trình >> Javascript

Loại bỏ các bản sao mảng theo thuộc tính - JavaScript

Giả sử, chúng ta có một mảng các đối tượng như thế này -

const arr = [{name: "Jack", age: "14"},{name: "bob", age: "14"}, {name: "sue", age: "21"}, {name: "Jill", age: "16"}, {name: "Jack", age: "21"}];

Chúng tôi được yêu cầu viết một hàm JavaScript nhận trong một mảng như vậy và xóa tất cả các đối tượng có giá trị trùng lặp cho tên.

Do đó, đối với mảng trên, kết quả đầu ra phải là -

const arr = [{name: "Jack", age: "14"},{name: "bob", age: "14"}, {name: "sue", age: "21"}, {name: "Jill", age: "16"}];

Ví dụ

Sau đây là mã -

const arr = [
   {name: "Jack", age: "14"},
   {name: "bob", age: "14"},
   {name: "sue", age: "21"},
   {name: "Jill", age: "16"},
   {name: "Jack", age: "21"}
];
const removeDuplicate = arr => {
   const appeared = {};
   for(let i = 0; i < arr.length; ){
      if(!appeared.hasOwnProperty(arr[i].name)){
         appeared[arr[i].name] = 1;
         i++;
         continue;
      };
      arr.splice(i, 1);
   };
};
removeDuplicate(arr);
console.log(arr);

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[
   { name: 'Jack', age: '14' },
   { name: 'bob', age: '14' },
   { name: 'sue', age: '21' },
   { name: 'Jill', age: '16' }
]