簡體   English   中英

計算單個字母在一個單詞中出現多少次

[英]Count how many times a single letter appears in a word

我是JavaScript的新手,我想弄清楚如何計算單個字母在一個單詞中出現的次數。 例如, 'p'出現在'apple'多少次

這是我到目前為止所寫的內容,但是在弄清楚我要去哪里出錯時遇到了麻煩。

var letterInWord = function (letter, word) {
  var letter = 0;
  var word = 0;
  for (var i = 0; i < letter.charAt; i+= 1) {
    if (letter.charAt(i) === " " = true) {
        letter++;
        console.log('The letter `letter` occurs in `word` 1 time.');
    } 
  }
  return letter;
};

您遇到了許多問題:

  1. 您正在將參數名稱重新用作局部變量名稱。 使用不同的標識符來跟蹤函數中的每條信息。
  2. letter.charAt是不確定的,如果letter是一個數字,是一個函數,如果letter是一個字符串。 無論哪種方式, i < letter.charAt都沒有道理。
  3. 如果要搜索word中的letter ,為什么要查看letter.charAt(i) 您可能需要word.charAt(i)
  4. " " = true毫無意義。

也許您的意思是這樣的?

var letterInWord = function (letter, word) {
  var count = 0;
  for (var i = 0; i < word.length; i++) {
    if (word.charAt(i) === letter) {
        count++;
    } 
  }
  return count;
};
'apple'.match(/p/g).length // outputs 2

換一種說法:

var letterInWord = function (letter, word) {
  return (word.match( new RegExp(letter, 'g') ) || []).length;
};

小提琴

這是一個較小的函數,也可用於$*類的字符(並且由於它在字符串上調用length ,因此無需使用|| []

'apple'.replace(/[^p]/g,'').length // outputs 2


  
 
  
  
  
function charcount(c, str) {
  return str.replace(new RegExp('[^'+c+']','g'),'').length
}

console.log = function(x) { document.write(x + "<br />"); };
console.log( "'*' in '4*5*6' = " + charcount('*', '4*5*6') ) // outputs 2
console.log( "'p' in 'pineapples' = " + charcount('p', 'pineapples') )// outputs 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM