Chúng ta cần viết hàm JavaScript nhận vào mảng giá trị nguyên thủy có thể chứa giá trị trùng lặp.
Hàm trả về mảng tất cả các phần tử được lặp lạ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];
Kết quả:
const output = [1, 2];
vì 1 và 2 lặp lại số lần ít nhất (2 lần).
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));Kết quả
Kết quả in ra console:
[ 1, 2 ]