文字列内の特定の文字の数を数えようとしていますが、正しい出力ではなく「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);
Youreの、これだけ繰り返し処理を一度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
を試すことができます。その結果Array
のlength
が見つかりました文字の数です:
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>
ループの外でリターンを入れて – Engineer