2016-10-07 2 views
0

나는 답을 가지고있다. 그러나 결국, 나는 단지 "B라는 글자로 시작하는 두 개의 이름이 있습니다."내가 지금 얻지는 않는다.JavaScript - 특정 문자로 시작하는 항목이 몇 개입니까?

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

그리고 당신의 질문은 무엇인가? 콘솔 로그는'for' 루프 안에 있습니다 .... – t0mm13b

+2

들여 쓰기 코드 (올바르게)는 코드 - 지혜의 시작입니다. – trincot

+0

실행시. B가 2 개의 이름의 시작 부분에 출력됩니다. " 바로 지금 그것이 말한다 : B는 1 개의 이름의 처음에있다 B는 2 개의 이름의 처음에있다 들여 쓰기의 부호? 나는 총 초보자이며 이것은 모두 다루지 않았습니다! !!!! 나는 그것에 대해 읽도록하겠습니다. –

답변

1

두 가지가 옳지 않습니다. 먼저 변수 개수를 선언 한 후 ,이 누락되었습니다. 마지막으로 루프 내부에 console.log() 문이 있습니다. 그래서 그것은 당신이 원하는 몇 번 더 호출됩니다. 루프 아래에 놓아야합니다.

이 코드는 당신을 위해 일해야합니다

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

downvoter는이 답변에 무엇이 잘못되었는지 설명해 주시겠습니까? (+1) – trincot

+0

예. 그것은 작동합니다! 굉장해! 나는 모든 것을 console.log에 넣었으며, 그런 식으로 혼자 서 있을지 몰랐다. 귀하의 설명은 완전한 의미를 갖습니다. 고맙습니다!!!! –

+0

@HeatherLee : 답변으로 도움이 되었다면 [accepting] (http://stackoverflow.com/help/someone-answers)을 고려하십시오. 댓글은 단순한 "감사, 작동"이 아닙니다. – 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

감사합니다. 나는 추가해야했다. 환영합니다. –

+0

환영합니다. 그러나 ovcos u는 그것을 원하는대로 만들 수 있습니다. 아마도 그것은 매우 커스텀 가능합니다. – Dennisrec

1

사용 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") 
 
);

관련 문제