javascript - Principe et mise en œuvre : suggestion de complétion de certains caractères
天蓬老师
天蓬老师 2017-07-03 11:42:19
0
2
797
  1. L'assistance au contenu vous fournit une liste de complétions suggérées pour les chaînes partiellement saisies.
    L'assistance au contenu vous fournit une liste de complétions suggérées pour les chaînes partiellement saisies.

  2. La description est à peu près comme ci-dessus, je ne sais pas comment utiliser un mot plus précis pour la décrire.

  3. Il y a cette fonction dans
  4. sublime, vous saisissez des "caractères incomplets" et elle vous renverra tous les résultats contenant ces lettres. Par exemple : saisissez ds pour obtenir desk , même s'il y a une lettre e au milieu.

  5. Je veux juste savoir comment cela se réalise et quel est le principe ?

  6. De plus, cette fonction a-t-elle un nom (en fait, je ne sais pas comment cette fonction devrait s'appeler, donc cela gêne ma recherche de réponses en ligne) ?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(2)
迷茫

@boxsnake a donné un exemple de recherche dans un tableau. Les résultats renvoyés doivent être triés "avsdsss" a la priorité la plus élevée, car il contient des "ds" consécutifs. "Tout le monde" devrait également être coché, il contient "d".

La complexité temporelle de la recherche dans le tableau est trop élevée Lorsqu'il y a de nombreux mots-clés, la vitesse est fondamentalement inacceptable.

La méthode efficace et réalisable consiste à utiliser un arbre de recherche de chaînes.
Trie Tree (arbre de dictionnaire) pour le traitement massif de données

女神的闺蜜爱上我
  1. Cette fonction devrait s'appeler « Search Smart Tips »

  2. Il existe de nombreuses façons de l'implémenter, mais je ne connais que la plus simple et la plus facile à comprendre. L'algorithme de requête complexe est optimisé, ce qui est plus efficace et peut impliquer des problèmes de programmation dynamique.

  3. Si c'est la méthode la plus simple, elle consiste à diviser la chaîne, puis à mettre un .* entre tous les deux caractères, puis à générer une expression régulière et à utiliser cette expression régulière pour faire correspondre la liste

  4. Pseudo-code JS :

var list = [ ... ];
var text = 'ds';
var result = [];

if(text != '') {
    var pattern = new RegExp(text.split('').join('.*'));

    result = list.filter(function(item) {
        return pattern.test(item);
    });
}

Effet de démonstration :

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal