문자열의 특정 문자 수를 계산하려고하는데 올바른 출력 대신 "0"이 표시됩니다. 솔루션을 쉽게 얻을 수있는 방법이 있다는 것을 알고 있지만이 방법과이를 잘못 수행하는 방법을 알고 싶습니다.문자열의 특정 문자 수를 계산합니다.
countCharacter=(str,char)=>str.split("").reduce((count,letter)=>letter===char?count+1:count,0);
문자열의 특정 문자 수를 계산하려고하는데 올바른 출력 대신 "0"이 표시됩니다. 솔루션을 쉽게 얻을 수있는 방법이 있다는 것을 알고 있지만이 방법과이를 잘못 수행하는 방법을 알고 싶습니다.문자열의 특정 문자 수를 계산합니다.
countCharacter=(str,char)=>str.split("").reduce((count,letter)=>letter===char?count+1:count,0);
개봉, 그래서 그냥 반복 한 번 forloop : 짧은
function countCharacter(str, char) {
var count = 0;
for(var i = 0; i < str.length; i++){
if(str.charAt(i) === char){
count++;
}
}
return count;
}
countCharacter("My cat is driving my crazy", "a");
그런데, 루프
반환 카운트가 밖으로 장소에 있어야합니다 : for 루프에 복귀
function countCharacter(str, char) {
var count = 0;
for(var i = 0; i < str.length; i++){
if(str.charAt(i) === char){
count++;
}
return count;
}
}
countCharacter("My cat is driving my crazy", "a");
우연히 return
문을안에 넣었습니다. 0 루프이므로 루프를 처음 실행 한 후 반환됩니다. 아래에 고정 :
function countCharacter(str, char) {
var count = 0;
for(var i = 0; i < str.length; i++){
if(str.charAt(i) === char){
count++;
}
}
return count;
}
countCharacter("My cat is driving my crazy", "a");
당신은 split
및 filter
을 시도 할 수 있습니다.
const aFound = "My cat is driving my crazy"
.split("") // split per character
.filter(chr => chr === "a"); // filter on character 'a'
const numberOfz = findCharacterInString("I'm driving my cat crazy", "z");
document.querySelector("pre").textContent = `
There is/are ${aFound.length} a('s) in "My cat is driving my crazy"
There is/are ${numberOfz} z('s) in "I'm driving my cat crazy"`;
// As method (case insensitive)
function findCharacterInString(string2Search, character) {
return string2Search
.split("")
.filter(chr => chr.toLowerCase() === character.toLowerCase())
.length;
}
<pre></pre>
루프의 외부 반환을 넣어 : 결과
Array
의length
찾을 문자의 수 – Engineer