Maison > interface Web > js tutoriel > le corps du texte

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

王林
Libérer: 2023-09-06 22:53:07
avant
1529 Les gens l'ont consulté

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

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

const arr = [1, 6, 3, 1, 3, 1, 6, 3];
Copier après la connexion

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];
Copier après la connexion

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));
Copier après la connexion

Sortie

La sortie dans la console sera -

[1, 6, 3, 1, 3, 6]
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal