Maison  >  Article  >  interface Web  >  Questions amusantes JavaScript : qu'est-ce qu'il y a dedans ?

Questions amusantes JavaScript : qu'est-ce qu'il y a dedans ?

黄舟
黄舟original
2017-02-13 16:02:441041parcourir

On sait qu'il existe deux tableaux de chaînes, appelons-les a1, a2 pour l'instant.

La tâche actuelle consiste à trouver tous les éléments de a1 qui sont des sous-chaînes d'éléments dans a2 et de les stocker dans un nouveau tableau.

Triez ce nouveau tableau par ordre lexicographique et renvoyez-le.

Un exemple :

a1 = ["arp", "live", "strong"]

a2 = ["lively", "alive" , "harpe", "sharp", "armstrong"]


Retour["arp", "live", "strong"]

Ici, "arp" est une sous-chaîne de "harp", et "live" est une sous-chaîne de "lively", donc il peut être retourné.

Regardez un autre exemple :

a1 = ["tarp", "mice", "bull"]

a2 = ["lively", "alive " ", "harpe", "sharp", "armstrong"]


Retour à []

icia1 Aucun d'entre eux n'est conforme aux règles de sous-chaîne, donc un tableau vide est renvoyé.

D'accord, voyons comment le résoudre :

Tout d'abord, quand je vois la sous-chaîne, je suppose que j'ai besoin d'un moyen de juger s'il s'agit d'une sous-chaîne :


if(typeof String.prototype.isSubstringOf === "undefined"){
    String.prototype.isSubstringOf = function(str){
        return str.indexOf(this) >= 0;
    };
}

Ensuite, parcourez a1 un par un et déterminez si l'élément actuel est une sous-chaîne de l'élément dans a2 If. alors, poussez-le dans un nouveau tableau.

Ensuite, lorsque la boucle se termine, le nouveau tableau est rempli.

Comment faire un tri lexicographique ? Devons-nous encore écrire des algorithmes ?

Ce n'est pas si compliqué. Le tri intégré de JavaScript est l'ordre du dictionnaire par défaut.

Ensuite, il suffit de trier directement le nouveau tableau et de le retourner !


function inArray(array1,array2){
    var newArray = [];
    for(var i=0;i<array1.length;i++){
        var temp = array1[i];
        if(temp){
            for(var j=0;j<array2.length;j++){
                if(temp.isSubstringOf(array2[j])){
                    newArray.push(temp);
                    break;
                }
            }
        }
    }
    return newArray.sort();
}


Ce qui précède est une question JavaScript intéressante : qu'est-ce qu'il y a dedans ? Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn