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