Mô tả bài toán
Kiểm tra không phần tử nào trong mảng xuất hiện nhiều hơn limit lần. Trả về true nếu hợp lệ, false nếu vi phạm.
Ví dụ minh họa
const arr = [4, 6, 7, 4, 2, 5, 7, 7, 4, 4, 3];
const validateElements = (arr, n) => {
const counts = arr.reduce((acc, el) => {
acc[el] = (acc[el] + 1) || 1;
return acc;
}, {});
return Object.values(counts).every(c => c < n);
};
console.log(validateElements(arr, 3)); // false (4 xuất hiện 4 lần)
console.log(validateElements(arr, 4)); // false (4 xuất hiện 4 lần, không < 4)
console.log(validateElements(arr, 6)); // true
Kết quả
false false true
Cách viết ngắn gọn
const validateElements = (arr, n) =>
Object.values(arr.reduce((a, v) => (a[v] = -~a[v], a), {})).every(c => c < n);
Ứng dụng
Validation dữ liệu, rate limiting, phát hiện spam/bot behavior.