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

Loại bỏ các bản sao khỏi một mảng đối tượng JavaScript

Chúng ta được yêu cầu viết một hàm loại bỏ các đối tượng trùng lặp khỏi một mảng và trả về một mảng mới. Hãy coi một đối tượng này là bản sao của đối tượng khác nếu cả hai đều có cùng số khóa, cùng khóa và cùng giá trị cho mỗi khóa.

Hãy viết mã cho việc này -

Chúng tôi sẽ sử dụng bản đồ để lưu trữ các đối tượng riêng biệt ở dạng chuỗi và khi chúng tôi thấy khóa trùng lặp, chúng tôi sẽ bỏ qua khóa đó, nếu không chúng tôi đẩy đối tượng vào mảng mới -

Ví dụ

const arr = [
   {
      "timestamp": 564328370007,
      "message": "It will rain today"
   },
   {
      "timestamp": 164328302520,
      "message": "will it rain today"
   },
   {
      "timestamp": 564328370007,
      "message": "It will rain today"
   },
   {
      "timestamp": 564328370007,
      "message": "It will rain today"
   }
   ];
   const map = {};
   const newArray = [];
   arr.forEach(el => {
      if(!map[JSON.stringify(el)]){
         map[JSON.stringify(el)] = true;
         newArray.push(el);
   }
});
console.log(newArray);

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[
   { timestamp: 564328370007, message: 'It will rain today' },
   { timestamp: 164328302520, message: 'will it rain today' }
]