Angenommen, wir haben ein Array von Zahlen wie dieses –
const arr = [1, 6, 3, 1, 3, 1, 6, 3];
Wir müssen eine JavaScript-Funktion schreiben, die ein Array wie dieses als erstes und einziges Argument akzeptiert. Die Funktion sollte dann alle Zahlen finden, die ungerade oft (außer nur einmal) im Array vorkommen.
Im Array oben kommen die Zahlen 1 und 3 beide dreimal vor (eine ungerade Zahl), daher sollte unsere Funktion das dritte Vorkommen dieser beiden Zahlen entfernen.
Das Ausgabearray sollte so aussehen -
const output = [1, 6, 3, 1, 3, 6];
Wir bereiten eine Hash-Map vor, um die Anzahl des Vorkommens jeder Zahl zu verfolgen, und schließlich iterieren wir die Karte, um das letzte Vorkommen dieser Zahl zu entfernen, das als ungerade Zahl erscheint der Zeiten.
Jeder Schlüssel in der Karte enthält einen Array-Wert, wobei das erste Element die Anzahl der Vorkommen dieses Elements und das zweite Element der Index des letzten Vorkommens dieses Elements ist.
Der Code lautet -
Live-Demo
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));
Die Ausgabe in der Konsole lautet -
[1, 6, 3, 1, 3, 6]
Das obige ist der detaillierte Inhalt vonEntfernen Sie ungerade Vorkommen einer beliebigen Zahl/eines beliebigen Elements aus dem Array in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!