Javascript 黑客在.count上的排名测试错误

Javascript 黑客在.count上的排名测试错误,javascript,count,Javascript,Count,我正在做一个hackerrank测试,这是一个简单的谜题,表明8=2和0,4,6,9=1,所有其他数字都等于0。所以我用javascript编写了这个函数,它在ie的记事本外工作,但是当我把它放到hackerrank控制台时,我得到了一个指向.count的错误。有人知道为什么会这样吗?我是javascript新手,所以这可能是一个简单的问题,我就是搞不懂。任何帮助都会很好。谢谢 var str = prompt("Number: "); String.prototype.count = func

我正在做一个hackerrank测试,这是一个简单的谜题,表明8=2和0,4,6,9=1,所有其他数字都等于0。所以我用javascript编写了这个函数,它在ie的记事本外工作,但是当我把它放到hackerrank控制台时,我得到了一个指向.count的错误。有人知道为什么会这样吗?我是javascript新手,所以这可能是一个简单的问题,我就是搞不懂。任何帮助都会很好。谢谢

var str = prompt("Number: ");
String.prototype.count = function(match) {
var res = this.match(new RegExp(match,"g"));
if (res==null) { return 0; }
return res.length;}
document.write((str.count(8)*2)+ str.count(4) + str.count(6) + str.count(9)      + str.count(0));
};

人们通常不赞成对字符串或数组等内置对象进行原型化。只定义一个独立的函数来做完全相同的事情会容易得多,而且您不必担心没有定义计数。问题可能是黑客等级不允许您修改字符串对象?不过我不确定。尝试使用类似以下内容:

function count(str, letter) { 
  // your code
}

不知道你的意思。可能需要一个开关:

function pickANumber(num){
  switch(num){
    case 8:
      return 2;
    case 0: case 4: case 6: case 9:
      return 1;
    default:
      return 0;
  }
}
console.log(pickANumber(8));
console.log(pickANumber(5));
console.log(pickANumber(9));

谢谢我没想到用开关。我不确定错误是什么,除了控制台错误查找器突出显示了count的用法之外,我认为这不是一个问题。我来试试。嗯,我没有考虑这方面。我知道我过去在他们的系统中遇到过问题,主要是因为我对编码比较新。谢谢你的建议。我以后会记住的。