2

私は JavaScript に非常に慣れていないため、1 つの文字が単語に何回出現するかを数える方法を理解しようとしています。たとえば'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;
};
4

3 に答える 3

4

いくつかの問題があります。

  1. パラメータ名をローカル変数名として再利用しています。異なる識別子を使用して、関数内の各情報を追跡します。
  2. letter.charAtが数値の場合は未定義、が文字列のletter場合は関数です。letterいずれにせよ、i < letter.charAt意味がありません。
  3. で検索している場合letterwordなぜ見たいの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;
};
于 2013-11-25T23:27:01.230 に答える
1
'apple'.match(/p/g).length // outputs 2

言い換えると:

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

フィドル

于 2013-11-25T23:26:28.793 に答える
0

$orのような文字でも機能する小さな関数を次に示します*(文字列を呼び出すため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
于 2016-06-16T19:09:55.257 に答える