2016-10-07 4 views
0

Ich habe die Antwort, irgendwie. Aber am Ende möchte ich nur sagen: "Es gibt zwei Namen, die mit dem Buchstaben B beginnen" Nicht, was ich jetzt bekomme.JavaScript - Wie viele Artikel beginnen mit einem bestimmten Buchstaben?

var count = 0 
a = ["Bill", "Julia", "Coral", "Wendy", "Bob"]; 
for (var i = 0; i < a.length; i++) { 
    if (a[i].startsWith("B")) { 
    count++; 
    } 
    console.log("B" + " is at the beginning of " + count + " names"); 
    } 
+2

Und was ist Ihre Frage? Ihr Konsolenprotokoll befindet sich in der 'for'-Schleife .... – t0mm13b

+2

Einrückender Code (korrekt) ist der Anfang der Code-Weisheit. – trincot

+0

Wenn es läuft. Ich will nur, dass es "B ist am Anfang von 2 Namen" ausgibt. Jetzt heißt es: B steht am Anfang von 1 Namen B steht am Anfang von 2 Namen Einrückcode? Ich bin ein totaler Neuling und das ist nicht alles abgedeckt !!!! Ich werde es nachlesen. –

Antwort

1

Es gibt zwei Dinge nicht richtig. Zuerst gibt es eine , fehlt nach der Deklaration der Variablenanzahl. Und zuletzt haben Sie die console.log() Anweisung innerhalb der Schleife. So wird es noch ein paar Mal aufgerufen, als Sie es wollten. Sie müssen es unter die Schleife legen.

Dieser Code sollte für Sie arbeiten:

var count = 0, 
    a = ["Bill", "Julia", "Coral", "Wendy", "Bob"]; 

for (var i = 0; i < a.length; i++) { 
    if (a[i].startsWith("B")) { 
     count++; 
    } 
} 

console.log("B" + " is at the beginning of " + count + " names"); 
+1

Könnte der Downvoter bitte erklären, was mit dieser Antwort falsch ist? (+1) – trincot

+0

Ja. Es klappt! Genial! Ich habe das console.log in alles hineingelegt, ich wusste nicht, dass es so alleine stehen könnte. Deine Erklärung macht absolut Sinn. Vielen Dank!!!! –

+0

@HeatherLee: Wenn Ihnen eine Antwort geholfen hat, ziehen Sie [akzeptieren] (http://stackoverflow.com/help/someone-answers) in Betracht. Kommentare sind nicht für einfaches "Danke, es funktioniert". – usr2564301

0
<script> 
    var count = 0,a = ["Bill", "Julia", "Coral", "Wendy", "Bob"]; 
    for (var i = 0; i < a.length; i++) { 

     //Easy way is to grab the first letter 
     if (a[i].substring(0)[0].match(/B/ig)) { 
      count=count+1; 
      console.log(a[i].substring(0)[0]+" is at the beginning of "+a[i]); 
     } 

    } 


    //TYPICALLY NOT IN THE LOOP 
    //AND NOW HERE YOU HAVE ALL THAAT MATCHED.... 
    if(count>0){ 
     //some words start with the letter B 
     //remeber to reset it @ last you u r gonna reuse it! 
    }else{ 
     //nothing matched... 
    } 

</script> 
+0

Danke. Ich hätte hinzufügen sollen. Ich muss die .startsWith –

+0

Willkommen heißen. Aber von Ovcos können Sie es machen, was Sie wollen, es ist vielleicht höchst benutzerdefinierbar. – Dennisrec

1

Verwendung RegExp:

const names = ["Bill", "Julia", "Coral", "Wendy", "Bob"]; 
 

 
let startsWith = (names,letter) => { 
 
    return names.filter(name => { 
 
    let pattern = new RegExp('^'+letter); 
 
    return name.match(pattern); 
 
    }); 
 
}; 
 

 
console.log( 
 
    'There are ' + startsWith(names,"B").length + ' names that start with "B"', 
 
    startsWith(names,"B") 
 
);

Verwandte Themen