希望每个人都有美好的一天。
这是我在 Stackoverflow 上发表的第一篇文章!
我刚刚完成了 Codeacademy 上的 javascript 类(class),并且也阅读了几本相关书籍。现在我正在进行代码战。我将自己归类为 Javascript 初学者。
我发现自己有点陷入挑战,请问有人可以阐明我可能做错了什么吗?非常感谢!
以下是说明:
检查字符串中“x”和“o”的数量是否相同。该方法必须返回 bool 值并且不区分大小写。该字符串可以包含任何字符。
这是我的代码:
function XO(str) {
var x = [];
var o = [];
for (var i = 0; i <= str.length; i++) {
if (str(i).toLowerCase === "x") {
x.push(i);
} else if (str(i).toLowerCase === "o") {
o.push(i);
}
if (x.length === o.length) {
return true;
} else {
return false;
}
}
}
最佳答案
我纠正了错误并用代码注释来解释
function XO(str) {
var x = [];
var o = [];
for (var i = 0; i < str.length; i++) { // i must be lower than length
// str[i] or str.charAt(i), not str(i)
if (str[i].toLowerCase() === 'x') { // toLowerCase is function, it must be called with toLowerCase()
x.push(str[i]); // should push character
} else if (str[i].toLowerCase() === 'o') {
o.push(str[i]);
}
}
// return statement must be located at the end
if (x.length == o.length) {
return true;
} else {
return false;
}
}
console.log(XO('xo'));
console.log(XO('xxo'));
console.log(XO('xoX'));
console.log(XO('xoOX'));
关于javascript - Codewar 挑战 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45661429/