>  기사  >  웹 프론트엔드  >  JavaScript의 배열에서 홀수로 나타나는 숫자/요소 제거

JavaScript의 배열에서 홀수로 나타나는 숫자/요소 제거

王林
王林앞으로
2023-09-06 22:53:071467검색

在 JavaScript 中从数组中删除任何数字/元素的奇数出现

다음과 같은 숫자 배열이 있다고 가정해 보겠습니다. -

const arr = [1, 6, 3, 1, 3, 1, 6, 3];

이와 같은 배열을 첫 번째이자 유일한 매개변수로 받아들이는 JavaScript 함수를 작성해야 합니다. 그런 다음 함수는 배열에서 홀수 번(한 번만 제외) 발생하는 모든 숫자를 찾아야 합니다.

예를 들어,

위 배열에서 숫자 1과 3은 모두 3번(홀수) 나타나므로 함수는 이 두 숫자 중 세 번째로 나타나는 것을 제거해야 합니다.

출력 배열은 다음과 같아야 합니다. -

const output = [1, 6, 3, 1, 3, 6];

각 숫자의 발생 횟수를 추적하기 위해 해시 맵을 준비하고 마지막으로 홀수로 나타나는 해당 숫자의 마지막 발생을 제거하기 위해 맵을 반복합니다. 여러 번.

맵의 각 키는 첫 번째 요소가 해당 요소의 발생 횟수이고 두 번째 요소가 해당 요소의 마지막 발생 인덱스인 배열 값을 보유합니다.

Example

코드는 -

라이브 데모

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

Output

콘솔의 출력은 -

[1, 6, 3, 1, 3, 6]
입니다.

위 내용은 JavaScript의 배열에서 홀수로 나타나는 숫자/요소 제거의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제