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

时间:2015-09-12 22:45:33

标签: javascript count

我正在进行hackerrank测试,这是一个简单的谜题,声明8 = 2和0,4,6,9 = 1而所有其他数字都等于0.所以我在javascript中写了这个函数,它可以在记事本中工作,但是当我把它放入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));
};

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

不确定你的意思。也许按顺序切换:

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