Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 요소 발생을 n번으로 제한

<시간/>

문제

첫 번째 인수로 중복을 포함하고 두 번째이자 마지막 인수로 숫자 num을 포함할 수 있는 정수 배열 arr을 사용하는 JavaScript 함수를 작성해야 합니다.

우리 함수의 임무는 배열을 반복하고 배열에 n번 이상 나타나는 어떤 숫자가 있는지 확인하는 것입니다.

그러한 요소가 있는 경우 추가 항목을 삭제하여 발생을 최대한 제한해야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우

입력

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

출력

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

출력 설명

4번과 1번 모두 3번 등장하여 3번 등장은 삭제

다음은 코드입니다 -

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));

출력

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