Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm zum Finden der k größten Elemente eines Arrays in ursprünglicher Reihenfolge

JavaScript-Programm zum Finden der k größten Elemente eines Arrays in ursprünglicher Reihenfolge

WBOY
WBOYnach vorne
2023-09-01 11:17:061445Durchsuche

JavaScript 程序按原始顺序查找数组的 k 个最大元素

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.

Methode

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.

Beispiel

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

Anleitung

    Die
  • -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.

  • Die
  • 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.

    Die
  • for-Schleife wird verwendet, um das ursprüngliche Array

    arr zu durchlaufen. Für jedes Element im Array prüft der Code mithilfe der Methode includes , ob es sich im Array kMaxElements befindet.

  • Wenn sich das aktuelle Element im Array

    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.

  • Die Schleife wird fortgesetzt, bis alle k größten Elemente gefunden und dem

    Ergebnisarray hinzugefügt wurden oder das Ende des ursprünglichen Arrays erreicht ist.

  • Der letzte Schritt besteht darin, das
  • Ergebnisarray zurückzugeben, das die größten k Elemente im ursprünglichen Array in der ursprünglichen Reihenfolge enthält.

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen