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

Giới hạn số lần xuất hiện của các phần tử trong JavaScript là n lần

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript nhận một mảng các số nguyên, arr, có thể chứa các bản sao làm đối số đầu tiên và một số, num, làm đối số thứ hai và cuối cùng.

Nhiệm vụ của hàm của chúng ta là lặp qua mảng và kiểm tra xem có tồn tại một số nào đó xuất hiện nhiều hơn n lần trong mảng hay không.

Nếu tồn tại bất kỳ phần tử nào như vậy, chúng ta nên xóa các phần tử thừa của phần tử đó để hạn chế phần tử xuất hiện nhiều nhất.

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

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

Đầu ra

const output = [4, 1, 3, 1, 4, 3, 2];

Giải thích đầu ra

Cả 4 và 1 đều xuất hiện ba lần, vì vậy lần xuất hiện thứ ba của chúng sẽ bị xóa

Ví dụ

Sau đây là mã -

const arr = [4, 1, 3, 1, 4, 1, 3, 4, 2];
const num = 2;
const deleteExtra = (arr = [], num = 1) => {
   if(num === 0){
      return [];
   };
   const res = [];
   const map = {};
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      map[el] = (map[el] || 0) + 1;
      if(map[el] <= num){
         res.push(el);
      };
   };
   return res;
};
console.log(deleteExtra(arr, num));

Đầu ra

[ 4, 1, 3, 1, 4, 3, 2 ]