


Detailliertes Beispiel für die Verwendung von JavaScript zum Randomisieren des Werteindex in einem Array und zum Erstellen eines Zufallsarrays
Das Beispiel in diesem Artikel beschreibt die Methode zum Randomisieren des Werteindex im Array und zum Erstellen eines Zufallsarrays mithilfe von JavaScript. Teilen Sie es als Referenz mit allen. Die Details sind wie folgt:
Heute habe ich in der QW-Kommunikationsgruppe gesehen, wie einige Studenten das Problem der Randomisierung von Arrays diskutierten. Der angegebene Algorithmus war sehr gut und erinnerte mich an den nicht so „schönen“ I hatte zuvor eine Methode implementiert. Denken Sie darüber nach: Manchmal, wenn wir damit beschäftigt sind, Geschäftscode zu schreiben, nur um seine Funktion zu implementieren, denken wir nicht viel darüber nach, ob es eine bessere Implementierungsmethode gibt.
Für dieses Array-Problem (dann die Werte in einem Array sortieren und ein neues Array zurückgeben) war meine vorherige Implementierungsmethode so:
function randArr(arr) { var ret = [], obj = {}, i = arr.length, l = i, n; while (--i >= 0) { n = Math.floor( Math.random() * l ); if (obj[n] === void 0) { ret[ret.length] = obj[n] = arr[n]; } else { i++; } } return ret; }
Der obige Code funktioniert. Es handelt sich jedoch nicht um einen guten Algorithmus. Er beabsichtigt, die Schleife „Länge des ursprünglichen Arrays“ zufällig auszuwählen und dann festzustellen, ob der Index verwendet wurde be Der Wert von wird in das neue Array eingefügt. Wenn er abgerufen wurde, wird der Dekrementierungsschlüssel i um 1 erhöht (der Zweck besteht darin, den Zyklus zu wiederholen, bis ein anderer Index abgerufen wird, der nicht abgerufen wurde). Die Leistung dieser Methode hängt von Ihrem Charakter ab. Ich glaube, dass Schüler, die diese Idee gesehen haben, den Grund verstehen werden.
Geben Sie nun den Algorithmus des Klassenkameraden in der Gruppe an:
function randArr(arr) { var ret = [], i = arr.length, n; arr = arr.slice(0); while (--i >= 0) { n = Math.floor( Math.random() * i); ret[ret.length] = arr.splice(n, 1)[0]; } return ret; }
Dies ist ein ziemlich cleverer Algorithmus, nachdem in jeder Schleife ein zufälliger Index verwendet und der Wert aus dem Array gelöscht wurde , sodass der Index, wenn er später immer noch zufällig abgerufen wird, nicht mehr der zuletzt abgerufene Wert ist und der Bereich der Zufallszahlen entsprechend der Länge des Arrays abnimmt, sodass Sie eine bestimmte Anzahl von Malen durchlaufen können auf einmal und erhalten Sie das ideale Ergebnis.
Ich habe auch eine verbesserte Version gesehen, die einige Leistungsprobleme berücksichtigt, die durch den Löschvorgang des Arrays verursacht werden, und den Mischalgorithmus von JK verwendet, dh jeden Löschvorgang in einen Positionsersetzungsvorgang umwandelt ( Der Wert von Der erhaltene Index wird mit dem Wert ausgetauscht, der dem aktuellen Dekrementierungsschlüssel i) entspricht, sodass die Auswirkung auf das gesamte Array minimal ist:
function randArr(arr) { var ret = [], i = arr.length, n; arr = arr.slice(0); while (--i >= 0) { n = Math.floor( Math.random() * i); ret[ret.length] = arr[n]; arr[n] = arr[i]; } return ret; }
Geben Sie abschließend ein „ „Erstellen Sie einen Zufall Bei der Methode „Array mit einem Wert zwischen Min und Max“ ähnelt das Algorithmusprinzip dem oben genannten:
function makeRandArr(min, max) { var ret = [], obj = {}, n; for (; max >= min; max--) { n = Math.ceil( Math.random() * (max - min) ) + min; ret[ret.length] = obj[n] || n; obj[n] = obj[max] || max; } return ret; }
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Verwendung von JavaScript zum Randomisieren des Werteindex in einem Array und zum Erstellen eines Zufallsarrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

Die Methode zur Verwendung einer foreach-Schleife zum Entfernen doppelter Elemente aus einem PHP-Array ist wie folgt: Durchlaufen Sie das Array und löschen Sie es, wenn das Element bereits vorhanden ist und die aktuelle Position nicht das erste Vorkommen ist. Wenn beispielsweise in den Datenbankabfrageergebnissen doppelte Datensätze vorhanden sind, können Sie diese Methode verwenden, um diese zu entfernen und Ergebnisse ohne doppelte Datensätze zu erhalten.

Zu den Methoden zum tiefen Kopieren von Arrays in PHP gehören: JSON-Kodierung und -Dekodierung mit json_decode und json_encode. Verwenden Sie array_map und clone, um tiefe Kopien von Schlüsseln und Werten zu erstellen. Verwenden Sie Serialize und Deserialize für die Serialisierung und Deserialisierung.

Der Leistungsvergleich der PHP-Methoden zum Umdrehen von Array-Schlüsselwerten zeigt, dass die Funktion array_flip() in großen Arrays (mehr als 1 Million Elemente) eine bessere Leistung als die for-Schleife erbringt und weniger Zeit benötigt. Die for-Schleifenmethode zum manuellen Umdrehen von Schlüsselwerten dauert relativ lange.

Die mehrdimensionale Array-Sortierung kann in Einzelspaltensortierung und verschachtelte Sortierung unterteilt werden. Bei der Einzelspaltensortierung kann die Funktion array_multisort() zum Sortieren nach Spalten verwendet werden. Bei der verschachtelten Sortierung ist eine rekursive Funktion erforderlich, um das Array zu durchlaufen und zu sortieren. Zu den praktischen Beispielen gehören die Sortierung nach Produktname und die Sortierung von Verbindungen nach Verkaufsmenge und Preis.

Die beste Vorgehensweise zum Durchführen einer Array-Deep-Kopie in PHP besteht darin, json_decode(json_encode($arr)) zu verwenden, um das Array in einen JSON-String zu konvertieren und ihn dann wieder in ein Array umzuwandeln. Verwenden Sie unserialize(serialize($arr)), um das Array in eine Zeichenfolge zu serialisieren und es dann in ein neues Array zu deserialisieren. Verwenden Sie den RecursiveIteratorIterator, um mehrdimensionale Arrays rekursiv zu durchlaufen.

Die PHP-Funktion array_group_by kann Elemente in einem Array basierend auf Schlüsseln oder Abschlussfunktionen gruppieren und ein assoziatives Array zurückgeben, wobei der Schlüssel der Gruppenname und der Wert ein Array von Elementen ist, die zur Gruppe gehören.

Mit der Funktion array_group() von PHP kann ein Array nach einem angegebenen Schlüssel gruppiert werden, um doppelte Elemente zu finden. Diese Funktion durchläuft die folgenden Schritte: Verwenden Sie key_callback, um den Gruppierungsschlüssel anzugeben. Verwenden Sie optional value_callback, um Gruppierungswerte zu bestimmen. Zählen Sie gruppierte Elemente und identifizieren Sie Duplikate. Daher ist die Funktion array_group() sehr nützlich, um doppelte Elemente zu finden und zu verarbeiten.
