다음과 같은 숫자 배열이 있다고 가정해 보겠습니다. -
const arr = [1, 6, 3, 1, 3, 1, 6, 3];
이와 같은 배열을 첫 번째이자 유일한 매개변수로 받아들이는 JavaScript 함수를 작성해야 합니다. 그런 다음 함수는 배열에서 홀수 번(한 번만 제외) 발생하는 모든 숫자를 찾아야 합니다.
위 배열에서 숫자 1과 3은 모두 3번(홀수) 나타나므로 함수는 이 두 숫자 중 세 번째로 나타나는 것을 제거해야 합니다.
출력 배열은 다음과 같아야 합니다. -
const output = [1, 6, 3, 1, 3, 6];
각 숫자의 발생 횟수를 추적하기 위해 해시 맵을 준비하고 마지막으로 홀수로 나타나는 해당 숫자의 마지막 발생을 제거하기 위해 맵을 반복합니다. 여러 번.
맵의 각 키는 첫 번째 요소가 해당 요소의 발생 횟수이고 두 번째 요소가 해당 요소의 마지막 발생 인덱스인 배열 값을 보유합니다.
코드는 -
라이브 데모
const arr = [1, 6, 3, 1, 3, 1, 6, 3]; const removeOddOccurence = (arr =[]) => { // keeping the original array unaltered const copy = arr.slice(); const map = {}; arr.forEach((num, ind) => { if(map.hasOwnProperty(num)){ map[num][0]++; map[num][1] = ind; }else{ map[num] = [1, ind]; }; }); for(const key in map){ const [freq, index] = map[key]; if(freq !== 1 && freq % 2 === 1){ copy.splice(index, 1, ''); }; }; return copy.filter(el => el !== ''); }; console.log(removeOddOccurence(arr));
콘솔의 출력은 -
[1, 6, 3, 1, 3, 6]
위 내용은 JavaScript의 배열에서 홀수로 나타나는 숫자/요소 제거의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!