Es ist bekannt, dass es zwei String-Arrays gibt, nennen wir sie a1, a2.
Die aktuelle Aufgabe besteht darin, alle Elemente aus a1 zu finden, die Teilzeichenfolgen von Elementen in a2 sind, und sie in einem neuen Array zu speichern.
Sortieren Sie dieses neue Array in lexikografischer Reihenfolge und geben Sie es zurück.
Ein Beispiel:
a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive" , „harp“, „sharp“, „armstrong“]
Return[„arp“, „live“, „strong“]
Hier ist "arp" ein Teilstring von "harp" und "live" ein Teilstring von "lively", also es kann zurückgegeben werden.
Sehen Sie sich ein anderes Beispiel an:
a1 = ["tarp", "mice", "bull"]
a2 = ["lively", "alive „“, „harp“, „sharp“, „armstrong“]
Zurück zu []
hiera1 Keiner von ihnen entspricht den Teilzeichenfolgenregeln, daher wird ein leeres Array zurückgegeben.
Okay, mal sehen, wie man es löst:
Wenn ich den Teilstring sehe, brauche ich zunächst eine Möglichkeit zu beurteilen, ob es sich um einen Teilstring handelt:
if(typeof String.prototype.isSubstringOf === "undefined"){ String.prototype.isSubstringOf = function(str){ return str.indexOf(this) >= 0; }; }
Gehen Sie dann nacheinander a1 durch und bestimmen Sie, ob das aktuelle Element eine Teilzeichenfolge des Elements in a2 ist Schieben Sie es also in ein neues Array.
Dann, wenn die Schleife endet, wird das neue Array gefüllt.
Wie führt man eine lexikografische Sortierung durch? Müssen wir noch Algorithmen schreiben?
So kompliziert ist die Sortierung in JavaScript standardmäßig nicht.
Dann sortieren Sie einfach direkt das neue Array und kehren zurück!
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(); }
Das Obige ist eine interessante JavaScript-Frage: Was ist drin? Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!