计算单个字母出现在单词中的次数

时间:2013-11-25 23:24:22

标签: javascript string charat

我是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;
};

3 个答案:

答案 0 :(得分:4)

你遇到了很多问题:

  1. 您正在重复使用参数名称作为本地变量名称。使用不同的标识符来跟踪函数中的每一位信息。
  2. letter.charAt未定义,如果letter是数字,并且letter是字符串时是函数。不管怎样,i < letter.charAt毫无意义。
  3. 如果您在letter中搜索word,为什么要查看letter.charAt(i)?您可能需要word.charAt(i)
  4. " " = true毫无意义。
  5. 也许你的意思是这样的?

    var letterInWord = function (letter, word) {
      var count = 0;
      for (var i = 0; i < word.length; i++) {
        if (word.charAt(i) === letter) {
            count++;
        } 
      }
      return count;
    };
    

答案 1 :(得分:1)

'apple'.match(/p/g).length // outputs 2
换句话说,

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

FIDDLE

答案 2 :(得分:0)

这是一个较小的函数,也适用于$*等字符(因为它在字符串上调用length,所以不需要使用|| [])< / p>

'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