Beispiel für die Implementierung einer lokalen Fuzzy-Suchfunktion in Front-End-JavaScript

Beispiel für die Implementierung einer lokalen Fuzzy-Suchfunktion in Front-End-JavaScript

1. Projektaussichten

Da Vue und React in der tatsächlichen Entwicklung immer häufiger verwendet werden, verarbeitet das Front-End immer mehr Daten. Der Hauptzweck dieses Artikels besteht darin, die vom Server zurückgegebenen Daten zu verarbeiten und je nach Bedingungen Fuzzy-Abfragen durchzuführen, um so die Anzahl der an den Server gesendeten Anfragen zu verringern und die Leistung und Benutzererfahrung zu verbessern. Nachfolgend finden Sie eine einfache DEMO zur Implementierung der Fuzzy-Abfragefunktion:

Die Testdaten sind wie folgt:

var Daten = [{
            "title": "Wie lange dauert es, bis man sich von einem gebrochenen Herzen erholt?",
            "Titelbild": "https://img.doutuimao.net/dtmimg/b7c9ec393414982682e5a477eb995b55",
            "desc": "Lebensmittel- und Getränketest: Wie lange dauert es, sich von einem gebrochenen Herzen zu erholen?"
            "id": "2",
            "num": 951357,
            "Flagge": "01"
    },
    {
            "title": "Wie hoch ist dein Koketterie-Index?",
            "Titelbild": "https://img.doutuimao.net/dtmimg/60d8ed86d1f72357c194506270c72ac1",
            "desc": "Frauen, die kokett sein können, haben das größte Glück. Wie gut bist du im Kokettieren? Wie charmant bist du, wenn du kokett bist? Mach den Test!",
            "id": "3",
            "num": 963258,
            "Flagge": "01"
    },
    {
            "title": "Wie werden Sie in Zukunft heiraten?",
            "Titelbild": "https://img.doutuimao.net/dtmimg/538632e75159ce8e586778d289c66a11",
            "desc": "Ich glaube, viele Menschen freuen sich auf ihre zukünftige Hochzeitsplanung. Möchten Sie wissen, wie Sie in Zukunft heiraten werden?",
            "id": "4",
            "num": 879564,
            "Flagge": "01"
    },
]

2. Wissenspunkte

Verwendung von Object.assign()

Mit der Methode Object.assign werden alle aufzählbaren Eigenschaften des Quellobjekts (Quelle) in das Zielobjekt (Ziel) kopiert. Es sind mindestens zwei Objekte als Parameter erforderlich, wobei der erste Parameter das Zielobjekt ist und alle nachfolgenden Parameter Quellobjekte sind.

// Original-Array verarbeiten let arrnew = data.map((item, index) => {
    return Objekt.assign({}, {
            'desc': Element.desc,
    })
})

filter() Methode

Die Methode filter() wird zum Filtern von Array-Elementen verwendet. Die Methode erstellt ein neues Array, das alle Elemente enthält, die den von der bereitgestellten Funktion implementierten Test bestehen. filter() erkennt keine leeren Arrays und verändert das ursprüngliche Array nicht.

indexOf() Fuzzy-Abfrage

Die Methode indexOf() gibt die Position des ersten Vorkommens eines angegebenen Zeichenfolgenwerts innerhalb einer Zeichenfolge zurück. Wenn der abzurufende Zeichenfolgewert nicht angezeigt wird, gibt die Methode -1 zurück. In Verbindung mit der Filtermethode kann es erkennen, ob das Array den Eingabewert enthält und ihn zurückgeben.

var neueDaten = arrnew.filter(item => {
    if (item.desc.indexOf(value) > -1) { //In der indexOf-Methode gibt xxx.indexOf("") den Wert 0 zurück.
            Rücksendeartikel
    }
    Neue Daten zurückgeben
})

Der vollständige DEMO-Code lautet wie folgt:

<div Klasse="wrap">
        <Eingabetyp="Text" id="Demo">
        <ul id="newsBox">
        </ul>
</div>
Funktion erstellen() {
        var Wert = Eingabewert;
        var html = "";
        lass arrnew = data.map((item, index) => {
                return Objekt.assign({}, {
                        'desc': Element.desc,
                })
        })

        var neueDaten = arrnew.filter(item => {
                if (item.desc.indexOf(value) > -1) { //In der indexOf-Methode gibt xxx.indexOf("") den Wert 0 zurück.
                        Rücksendeartikel
                }
                Neue Daten zurückgeben
        })


        wenn (neueDatenlänge > 0) {
                für (var i = 0; i < neueDatenlänge; i++) {
                        html += `<li>${newData[i].desc}</li>`
                }
        } anders {
                html += `<li>Keine Daten</li>`
        }
        ul.innerHTML = html;
}
erstellen()
input.onchange = Funktion(e) {
        erstellen()
}

Zusammenfassen

Dies ist das Ende dieses Artikels über die Implementierung der lokalen Fuzzy-Suchfunktion in JavaScript. Weitere relevante Inhalte zur lokalen Fuzzy-Suche in JS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • JavaScript zur Implementierung der Front-End-Paging-Funktion
  • Das JavaScript-Frontend implementiert die Bildkomprimierungsfunktion
  • JS implementiert die Suchfunktion der Front-End-Seite
  • Teilen Sie 10 gängige JavaScript-Frontend-Handschriftfunktionen

<<:  Lernen Sie einfach verschiedene SQL-Joins

>>:  Detaillierte Erklärung zur Verwendung der Linux-lseek-Funktion

Artikel empfehlen

Die 7 besten VSCode-Erweiterungen für Vue-Entwickler

Das Hinzufügen der richtigen VS Code-Erweiterung ...

Fallstudie zur dynamischen Datenbindung von this.$set in Vue

Ich finde, dass die Erklärung von this.$set im In...

HTML Table Tag Tutorial (47): Verschachtelte Tabellen

<br />Der Schriftsatz auf der Seite erfolgt ...

Neue Ideen zur Zeitformatierung in JavaScript toLocaleString()

Inhaltsverzeichnis 1. Konventionelle Ideen zur Ze...

Der Browser der Betaversion IE9 unterstützt HTML5/CSS3

Manche Leute sagen, dass IE9 die zweite Revolutio...

So entwerfen und optimieren Sie MySQL-Indizes

Inhaltsverzeichnis Was ist ein Index? Prinzip der...

Analyse der MySQL-Ansichtsfunktionen und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

Gemeinsame Nutzung verschiedener Methoden zum Deaktivieren des Seitencaches

Heute bin ich beim Entwickeln auf eine Methode ge...

Eine kurze Diskussion über die Definition und Vorsichtsmaßnahmen von H-Tags

Den Ergebnissen zufolge gibt es für die Definitio...

CSS implementiert fünf gängige 2D-Transformationen

2D-Transformationen in CSS ermöglichen es uns, ei...

Mehrere Möglichkeiten zum Senden von HTML-Formularen_PowerNode Java Academy

Methode 1: Absenden über den Absenden-Button <...

Prinzip der MySQL-Paging-Analyse und Effizienzverbesserung

Prinzip der MySQL-Paging-Analyse und Effizienzver...