帮助:我尝试使用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>
答案 0 :(得分:0)
您需要始终引用实例: this.str
,this.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());