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

Tìm các mục ít trùng lặp nhất trong JavaScript mảng

Chúng tôi được yêu cầu viết một hàm JavaScript có một mảng các ký tự có thể chứa một số giá trị trùng lặp.

Hàm phải trả về một mảng gồm tất cả các phần tử được lặp lại với số lần ít nhất.

Ví dụ - Nếu mảng đầu vào là -

const arr = [1,1,2,2,3,3,3];

Sau đó, đầu ra phải là -

const output = [1, 2];

bởi vì 1 và 2 được lặp lại với số lần ít nhất (2)

Ví dụ

const arr = [1,1,2,2,3,3,3];
const getLeastDuplicateItems = (arr = []) => {
   const hash = Object.create(null);
   let keys, min; arr.forEach(el => {
      hash[el] = hash[el] || {
         value: el, count: 0 };
         hash[el].count++; });
         keys = Object.keys(hash);
         keys.sort(function (el, b) {
            return hash[el].count - hash[b].count; });
            min = hash[keys[0]].count;
            return keys. filter(el => {
               return hash[el].count === min;
      }).
      map(el => {
         return hash[el].value;
   });
}
console.log(getLeastDuplicateItems(arr));

Đầu ra

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

[ 1, 2 ]