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

Cách lọc ra mảng phổ biến trong mảng mảng trong JavaScript

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

const arr = [
   [
      "Serta",
      "Black Friday"
   ],
   [
      "Serta",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ]
];

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy. Và hàm sẽ trả về một mảng mới chứa tất cả các mảng con duy nhất từ ​​mảng ban đầu.

Mã cho điều này sẽ là -

const arr = [
   [
      "Serta",
      "Black Friday"
   ],
   [
      "Serta",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ],
   [
      "Simmons",
      "Black Friday"
   ]
];
const filterCommon = arr => {
   const map = Object.create(null);
   let res = [];
   res = arr.filter(el => {
      const str = JSON.stringify(el);
      const bool = !map[str];
      map[str] = true;
      return bool;
   });
   return res;
};
console.log(filterCommon(arr));

Đầu ra

Đầu ra trong bảng điều khiển -

[ [ 'Serta', 'Black Friday' ], [ 'Simmons', 'Black Friday' ] ]