2016-05-10 13 views
0

Es handelt sich um eine grundlegende Algorithmusherausforderung, bei der der Benutzer true zurückgeben muss, wenn die Zeichenfolge im ersten Element des Arrays alle Buchstaben der Zeichenfolge im zweiten Element des Arrays enthält, z. B. .:Wie überprüfe ich, ob alle Zeichen einer Zeichenfolge in einer anderen Zeichenfolge vorhanden sind?

  1. ["hello", "Hello"] sollte true zurückzukehren.

  2. ["Alien", "line"] sollte true zurückgeben.

Bisher habe ich das versucht:

function mutation(arr) { 
    var value1 = arr[0].toLowerCase(); 
    var value2 = arr[1].toLowerCase(); 
    for (var i = 0; i < value2.length; i++) { 
     if (value1.indexOf(value2.charAt(i)) !== -1) 
      return true; 
     else 
      return false; 
     } 
    } 
} 
mutation(["hello", "hey"]); 

Während der Wert mutation(["hello", "hey"]) vorbei, es ist nicht false zurück.

+1

Check diese [Antwort] (http://stackoverflow.com/questions/37049306/how-to-check-two-string-have-same-characters-including- Sonderzeichen/37049804 # 37049804) – maioman

+0

Mögliches Duplikat von [Wie kann ich überprüfen, ob eine Zeichenfolge eine andere Teilzeichenfolge enthält?] (Http://stackoverflow.com/questions/1789945/how-can-i-check-if-one-string-contains-another-substring) –

+0

Ich würde sagen, genaues Duplikat der Antwort @ Maioman wies darauf hin; Derjenige, auf den Mike hingewiesen hat, antwortet, indem er eine einzelne Teilzeichenkette innerhalb einer anderen Zeichenkette findet, die aber nicht für jedes einzelne Zeichen in einer Zeichenkette innerhalb einer anderen Zeichenkette übereinstimmt. –

Antwort

0

es sieht aus wie youre ganz in der Nähe, außer Sie scheinen früh wieder wahr zu sein. Stattdessen, wenn die indexOf kehrt -1 Pause von der Schleife und false zurück, da sonst den Schleifendurchlauf zur Fertigstellung lassen und true zurück später (da es früh zurückkehren tut nicht, wissen wir alle Zeichen vorhanden sind)

function mutation(arr) { 
    var value1 = arr[0].toLowerCase(); 
    var value2 = arr[1].toLowerCase(); 

    for(var i=0;i<value2.length;i++){ 
    if(value1.indexOf(value2.charAt(i)) === -1) { return false; } 
    } 
    return true; 
} 

mutation(["hello", "hey"]); 
0

Check this out :

function mutation(arr) { 
    var value1 = arr[0].toLowerCase(); 
    var value2 = arr[1].toLowerCase(); 
    var result = true; 
    for (var i = 0; i < value2.length; i++) { 
    if (value1.indexOf(value2.charAt(i)) === -1) 
     result = false; 
    } 
    alert(result); 
} 
mutation(["Alien", "line"]); 
mutation(["hello", "Hello"]); 
mutation(["hello", "hey"]); 

Plunker: https://plnkr.co/edit/csauovjhFeFltkbqRxjx?p=preview

Verwandte Themen