Maison  >  Questions et réponses  >  le corps du texte

javascript - Principe et mise en œuvre : suggestion de complétion de certains caractères

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

天蓬老师天蓬老师2689 Il y a quelques jours781

répondre à tous(2)je répondrai

  • 迷茫

    迷茫2017-07-03 11:44:19

    @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

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-03 11:44:19

    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 :

    répondre
    0
  • Annulerrépondre