javascript:如何在类中编写频率

时间:2018-01-05 22:46:42

标签: javascript

帮助:我尝试使用js在类中编写频率方法,但错误显示str.length是红线。

谢谢

class MyString{

  constructor(str,letters){
    this.str = "Hello World";
    this.letters = "";
  }
  frequency(){
    for (var i = 0; i< str.length; i++){
      var char = str.charAt(i);
      if(letters[char]){
        letters[char]++;
      }else{
        letters[char] = 1;
      }
    }
    return letters;
  }

}

  let txt1 = new MyString("uuuuii.");
  txt1.frequency();

答案应该像你:4 i:2

html代码:

<!DOCTYPE HTML>
<html>
<body>
  <script src = "assignment.js"></script>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

您需要始终引用实例: this.strthis.letters

答案 1 :(得分:0)

您需要使用this引用实例变量。此外,您可能希望返回一个对象而不是字符串,并且您不需要this.letters

class MyString{

    constructor(str){
      this.str = str;
    }
    frequency(){
        const freq = {};
        for (var i = 0; i < this.str.length; i++){
            var charAt = str.charAt(i);
            if (freq[charAt]) {
                freq[charAt]++;
            } else {
                freq[charAt] = 1;
            }
        }
        return freq;
    }
}

let txt2 = new MyString("uuuuii.");
console.log(txt1.frequency());