.count 上的 Hacker Rank 测试错误

Hacker Rank test errors on .count

我正在做一个 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));
};

通常不赞成对 String 或 Array 等内置对象进行原型设计。只定义一个独立的函数来做完全相同的事情会容易得多,你不必担心 count 没有被定义。问题可能是 Hacker Rank 不允许您修改 String 对象?虽然不确定。尝试使用这样的东西:

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));