Heim > Artikel > Web-Frontend > JavaScript-Programm zum Finden der k größten Elemente eines Arrays in ursprünglicher Reihenfolge
Wir verwenden die JavaScript-Array-Sortiermethode und die Slicing-Technik, um die k größten Elemente des Arrays in der ursprünglichen Reihenfolge zu finden. Zuerst sortieren wir das Array in absteigender Reihenfolge und teilen es dann vom Anfang bis zum k-ten Index auf, um die größten k Elemente zu erhalten. Durch die Beibehaltung der ursprünglichen Reihenfolge der Elemente bleiben die Bedeutung und der Kontext der Daten erhalten, was uns die Analyse und Interpretation der Ergebnisse erleichtert.
Die Methode zum Finden der k größten Elemente in einem Array in der ursprünglichen Reihenfolge kann wie folgt beschrieben werden -
Erstellen Sie ein neues leeres Array, um bis zu k Elemente zu speichern.
Durchlaufen Sie das Eingabearray und vergleichen Sie jedes Element mit den Elementen im neuen Array.
Wenn das neue Array weniger als k Elemente enthält, fügen Sie einfach das aktuelle Element zum neuen Array hinzu.
Wenn das neue Array k Elemente hat, vergleichen Sie das aktuelle Element mit dem kleinsten Element im neuen Array.
Wenn das aktuelle Element größer als das Mindestelement ist, entfernen Sie das Mindestelement und fügen Sie das aktuelle Element dem neuen Array hinzu.
Zum Schluss wird ein neues Array zurückgegeben, das bis zu k Elemente in der ursprünglichen Reihenfolge enthält, in der sie im Eingabearray erschienen sind.
Hier ist ein vollständig funktionierendes JavaScript-Beispiel zum Finden der k größten Elemente eines Arrays in der ursprünglichen Reihenfolge -
function findKMaxElements(arr, k) { // Create a copy of the original array let sortedArr = [...arr]; // Sort the copy of the array in descending order sortedArr.sort((a, b) => b - a); // Slice the first k elements of the sorted array let kMaxElements = sortedArr.slice(0, k); // Create a result array to store the k maximum elements in their original order let result = []; // Loop through the original array for (let i = 0; i < arr.length; i++) { // Check if the current element is in the kMaxElements array if (kMaxElements.includes(arr[i])) { // If yes, add it to the result array result.push(arr[i]); // Remove the element from the kMaxElements array // to keep track of the elements that have already been added to the result kMaxElements.splice(kMaxElements.indexOf(arr[i]), 1); // If the kMaxElements array is empty, it means all k maximum elements have been found if (kMaxElements.length === 0) { break; } } } // Return the result array return result; } // Test the function with an example array let arr = [3, 2, 1, 4, 5]; let k = 3; console.log(findKMaxElements(arr, k));
-Funktion findKMaxElements verwendet ein Array arr und eine Ganzzahl k als Eingabe.
Der erste Schritt besteht darin, eine Kopie des ursprünglichen Arrays arr zu erstellen und diese mit der Methode sort in absteigender Reihenfolge zu sortieren. Dies wird es uns ermöglichen, die k größten Elemente leicht zu finden.
slice-Methode wird verwendet, um die ersten k Elemente des sortierten Arrays zu extrahieren und sie in einem neuen Array kMaxElements zu speichern.
李>Erstellen Sie ein Ergebnisarray, um die k größten Elemente in der ursprünglichen Reihenfolge zu speichern.
Diearr zu durchlaufen. Für jedes Element im Array prüft der Code mithilfe der Methode includes , ob es sich im Array kMaxElements befindet.
kMaxElements befindet, fügen Sie es dem Array result hinzu. Die Methode splice wird verwendet, um Elemente aus dem Array kMaxElements zu entfernen, um den Überblick über die Elemente zu behalten, die dem Ergebnis hinzugefügt wurden.
Ergebnisarray hinzugefügt wurden oder das Ende des ursprünglichen Arrays erreicht ist.
Das obige ist der detaillierte Inhalt vonJavaScript-Programm zum Finden der k größten Elemente eines Arrays in ursprünglicher Reihenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!