我正在进行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));
};
答案 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));