문제
첫 번째 인수로 중복을 포함하고 두 번째이자 마지막 인수로 숫자 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 ]