Verbesserung der JavaScript-Programmierfähigkeiten

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir uns in die Welt der JavaScript-Programmierung stürzen und unsere Fähigkeiten in der Sprache verbessern. Wir werden an verschiedenen Übungen und Projekten arbeiten, die uns helfen, die Grundlagen der Sprache zu verstehen, einschließlich Variablen, Datentypen, Funktionen und Schleifen. Am Ende dieses Labs werden wir eine solide Grundlage in der JavaScript-Programmierung haben und in der Lage sein, komplexere Programmieraufgaben anzugehen.

Funktion zum Finden des Einfügeindex in einem sortierten Array

Um den niedrigsten Index zu finden, an dem ein Wert in einem Array eingefügt werden kann, um die Sortierreihenfolge beizubehalten, verwenden Sie die Funktion sortedIndexBy(arr, n, fn) in JavaScript.

Diese Funktion überprüft grob, ob das Array in absteigender Reihenfolge sortiert ist, und verwendet dann Array.prototype.findIndex(), um den passenden Index basierend auf der Iterationsfunktion fn zu finden.

Hier ist der Code für die sortedIndexBy()-Funktion:

const sortedIndexBy = (arr, n, fn) => {
  const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
  const val = fn(n);
  const index = arr.findIndex((el) =>
    isDescending ? val >= fn(el) : val <= fn(el)
  );
  return index === -1 ? arr.length : index;
};

Sie können die Funktion mit einem Array von Objekten, einem einzufügenden Wert und einer Iterationsfunktion aufrufen.

Beispielsweise gibt sortedIndexBy([{ x: 4 }, { x: 5 }], { x: 4 }, o => o.x) 0 zurück, was der Index ist, an dem das { x: 4 }-Objekt eingefügt werden sollte, um die Sortierreihenfolge basierend auf der x-Eigenschaft beizubehalten.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab „Insertion Index in Sorted Array Based on Function“ abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.