Maison  >  Article  >  interface Web  >  Supprimer les occurrences impaires de n'importe quel nombre/élément du tableau en JavaScript

Supprimer les occurrences impaires de n'importe quel nombre/élément du tableau en JavaScript

王林
王林avant
2023-09-06 22:53:071522parcourir

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

Supposons que nous ayons un tableau de nombres comme celui-ci -

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

Nous devons écrire une fonction JavaScript qui accepte un tableau comme celui-ci comme premier et unique argument. La fonction doit alors trouver tous les nombres qui apparaissent un nombre impair de fois (sauf une seule) dans le tableau.

Par exemple,

Dans le tableau ci-dessus, les nombres 1 et 3 apparaissent tous deux 3 fois (un nombre impair), notre fonction doit donc supprimer la troisième occurrence de ces deux nombres.

Le tableau de sortie devrait ressembler à ceci -

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

Nous préparerons une carte de hachage pour garder une trace du nombre d'occurrences de chaque nombre et enfin nous allons parcourir la carte pour supprimer la dernière occurrence de ce nombre qui apparaît comme un nombre impair de fois.

Chaque clé de la carte contiendra une valeur de tableau où le premier élément est le nombre d'occurrences de cet élément et le deuxième élément est l'index de la dernière occurrence de cet élément.

Exemple

Le code est -

Démo en direct

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

Sortie

La sortie dans la console sera -

[1, 6, 3, 1, 3, 6]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer